24 lines
658 B
Go
24 lines
658 B
Go
package migrations
|
|
|
|
import (
|
|
"github.com/photoview/photoview/api/graphql/models"
|
|
"github.com/pkg/errors"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// MigrateForExifGPSCorrection finds and removes invalid GPS data from media_exif table
|
|
func MigrateForExifGPSCorrection(db *gorm.DB) error {
|
|
return db.Transaction(func(tx *gorm.DB) error {
|
|
if err := tx.Model(&models.MediaEXIF{}).
|
|
Where("ABS(gps_longitude) > ?", 90).
|
|
Or("ABS(gps_latitude) > ?", 90).
|
|
Updates(map[string]interface{}{
|
|
"gps_latitude": nil,
|
|
"gps_longitude": nil,
|
|
}).Error; err != nil {
|
|
return errors.Wrap(err, "failed to remove invalid GPS data from media_exif table")
|
|
}
|
|
return nil
|
|
})
|
|
}
|