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
|
||
|
})
|
||
|
}
|