analytics/priv/repo/migrations/20230406110926_associate-goals-with-sites.exs
hq1 3cb089eab4
Migrate and freeze goals creation (#2833)
* Full migration (to be submitted separately)

* Do not remove `Goal.domain` just yet

* Do not make Goal.site not nullable just yet

* Temporarily disable goal creation

* Rephrase error message

* Add down migration
2023-04-10 10:29:10 +02:00

29 lines
531 B
Elixir

defmodule :"Elixir.Plausible.Repo.Migrations.Associate-goals-with-sites" do
use Ecto.Migration
def up do
alter table(:goals) do
add :site_id, :integer, null: true
end
execute """
DELETE FROM goals g WHERE NOT EXISTS (
SELECT 1 FROM sites s
WHERE s.domain = g.domain
)
"""
execute """
UPDATE goals g SET site_id = (
SELECT s.id FROM sites s WHERE s.domain = g.domain
)
"""
end
def down do
alter table(:goals) do
remove :site_id
end
end
end