Improve database compatibility

- Make MediaType case insensitive when saved to database
- Null check exif migrations, this might solve #300
This commit is contained in:
viktorstrate
2021-04-13 21:39:07 +02:00
parent 7f546e122e
commit f8cd804c3d
3 changed files with 44 additions and 1 deletions

View File

@@ -72,6 +72,16 @@ func migrate_exif_fields_exposure(db *gorm.DB) error {
return tx.Model(&exifModel{}).Table("media_exif").Where("exposure LIKE '%/%'").FindInBatches(&results, 100, func(tx *gorm.DB, batch int) error {
for _, result := range results {
if result.Exposure == nil {
continue
}
if *result.Exposure == "" {
result.Exposure = nil
continue
}
frac := strings.Split(*result.Exposure, "/")
if len(frac) != 2 {
return errors.Errorf("failed to convert exposure value (%s) expected format x/y", frac)
@@ -147,6 +157,16 @@ func migrate_exif_fields_flash(db *gorm.DB) error {
return tx.Model(&exifModel{}).Table("media_exif").Where("flash IS NOT NULL").FindInBatches(&results, 100, func(tx *gorm.DB, batch int) error {
for _, result := range results {
if result.Flash == nil {
continue
}
if *result.Flash == "" {
result.Flash = nil
continue
}
for index, name := range flashDescriptions {
if *result.Flash == name {
*result.Flash = fmt.Sprintf("%d", index)