Added UUID backfill to a migration
This commit is contained in:
parent
ab47bdbdf5
commit
05e7fa3d2e
3 changed files with 13 additions and 15 deletions
|
|
@ -36,7 +36,6 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
|
||||||
reset_executing_jobs()
|
reset_executing_jobs()
|
||||||
create_blank_cookie_file()
|
create_blank_cookie_file()
|
||||||
apply_default_settings()
|
apply_default_settings()
|
||||||
backfill_uuids()
|
|
||||||
|
|
||||||
{:ok, state}
|
{:ok, state}
|
||||||
end
|
end
|
||||||
|
|
@ -68,18 +67,4 @@ defmodule Pinchflat.Boot.PreJobStartupTasks do
|
||||||
Settings.fetch!(:onboarding, true)
|
Settings.fetch!(:onboarding, true)
|
||||||
Settings.fetch!(:pro_enabled, false)
|
Settings.fetch!(:pro_enabled, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: turn into a migration
|
|
||||||
defp backfill_uuids do
|
|
||||||
# This is a one-time backfill to ensure that all media items have a UUID
|
|
||||||
# This is important for the RSS feed and the streaming endpoint
|
|
||||||
source_query = from(m in Source, where: is_nil(m.uuid), update: [set: [uuid: fragment("gen_random_uuid()")]])
|
|
||||||
media_item_query = from(m in MediaItem, where: is_nil(m.uuid), update: [set: [uuid: fragment("gen_random_uuid()")]])
|
|
||||||
|
|
||||||
{source_count, _} = Repo.update_all(source_query, [])
|
|
||||||
{media_item_count, _} = Repo.update_all(media_item_query, [])
|
|
||||||
|
|
||||||
Logger.info("Backfilled UUIDs for #{source_count} sources.")
|
|
||||||
Logger.info("Backfilled UUIDs for #{media_item_count} media items.")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
defmodule Pinchflat.Repo.Migrations.BackfillContentUuids do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
def up do
|
||||||
|
execute("UPDATE sources SET uuid = gen_random_uuid() WHERE uuid IS NULL")
|
||||||
|
execute("UPDATE media_items SET uuid = gen_random_uuid() WHERE uuid IS NULL")
|
||||||
|
end
|
||||||
|
|
||||||
|
def down do
|
||||||
|
execute("UPDATE sources SET uuid = NULL")
|
||||||
|
execute("UPDATE media_items SET uuid = NULL")
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue