Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1eb9c92d6a |
@@ -2847,8 +2847,10 @@ func (s *MediaScanner) updateMediaItem(ctx context.Context, existing database.Me
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Keep user-customized fields, and keep the override set itself intact.
|
// Keep user-customized fields, and keep the override set itself intact.
|
||||||
|
// MergeOverrides guarantees a non-nil slice: a nil []string would encode
|
||||||
|
// as SQL NULL and violate metadata_overrides' NOT NULL constraint.
|
||||||
utils.ApplyMetadataOverrides(¶ms, existing)
|
utils.ApplyMetadataOverrides(¶ms, existing)
|
||||||
params.MetadataOverrides = existing.MetadataOverrides
|
params.MetadataOverrides = utils.MergeOverrides(existing.MetadataOverrides)
|
||||||
|
|
||||||
_, err = s.db.UpdateMediaItem(ctx, params)
|
_, err = s.db.UpdateMediaItem(ctx, params)
|
||||||
return err
|
return err
|
||||||
@@ -2869,7 +2871,10 @@ func (s *MediaScanner) RescanMediaItem(ctx context.Context, mediaItemID pgtype.U
|
|||||||
if err := s.db.ClearMediaItemMetadataOverrides(ctx, mediaItemID); err != nil {
|
if err := s.db.ClearMediaItemMetadataOverrides(ctx, mediaItemID); err != nil {
|
||||||
return fmt.Errorf("failed to clear metadata overrides: %w", err)
|
return fmt.Errorf("failed to clear metadata overrides: %w", err)
|
||||||
}
|
}
|
||||||
item.MetadataOverrides = nil
|
// Empty - not nil: pgx encodes a nil []string parameter as SQL NULL,
|
||||||
|
// which would violate the column's NOT NULL constraint when
|
||||||
|
// updateMediaItem writes the row back.
|
||||||
|
item.MetadataOverrides = []string{}
|
||||||
}
|
}
|
||||||
|
|
||||||
folders, err := s.db.GetLibraryFolders(ctx, item.LibraryID)
|
folders, err := s.db.GetLibraryFolders(ctx, item.LibraryID)
|
||||||
|
|||||||
Reference in New Issue
Block a user