diff --git a/lib/music_library/scrobble_rules/scrobble_rule.ex b/lib/music_library/scrobble_rules/scrobble_rule.ex index be2b9edb..13434c58 100644 --- a/lib/music_library/scrobble_rules/scrobble_rule.ex +++ b/lib/music_library/scrobble_rules/scrobble_rule.ex @@ -10,8 +10,8 @@ defmodule MusicLibrary.ScrobbleRules.ScrobbleRule do target_musicbrainz_id: String.t(), enabled: boolean(), description: String.t() | nil, - inserted_at: NaiveDateTime.t() | nil, - updated_at: NaiveDateTime.t() | nil + inserted_at: DateTime.t() | nil, + updated_at: DateTime.t() | nil } schema "scrobble_rules" do @@ -21,7 +21,7 @@ defmodule MusicLibrary.ScrobbleRules.ScrobbleRule do field :enabled, :boolean, default: true field :description, :string - timestamps() + timestamps(type: :utc_datetime) end @doc false diff --git a/priv/repo/migrations/20260306095724_fix_scrobble_rules_timestamps.exs b/priv/repo/migrations/20260306095724_fix_scrobble_rules_timestamps.exs new file mode 100644 index 00000000..0917461d --- /dev/null +++ b/priv/repo/migrations/20260306095724_fix_scrobble_rules_timestamps.exs @@ -0,0 +1,15 @@ +defmodule MusicLibrary.Repo.Migrations.FixScrobbleRulesTimestamps do + use Ecto.Migration + + def up do + execute "UPDATE scrobble_rules SET inserted_at = inserted_at || 'Z' WHERE inserted_at NOT LIKE '%Z'" + + execute "UPDATE scrobble_rules SET updated_at = updated_at || 'Z' WHERE updated_at NOT LIKE '%Z'" + end + + def down do + execute "UPDATE scrobble_rules SET inserted_at = REPLACE(inserted_at, 'Z', '') WHERE inserted_at LIKE '%Z'" + + execute "UPDATE scrobble_rules SET updated_at = REPLACE(updated_at, 'Z', '') WHERE updated_at LIKE '%Z'" + end +end