berrypod/priv/repo/migrations/20260328091440_allow_null_social_link_url.exs

44 lines
1.1 KiB
Elixir
Raw Normal View History

defmodule Berrypod.Repo.Migrations.AllowNullSocialLinkUrl do
use Ecto.Migration
def change do
# Allow blank URLs so users can add a link and then paste the URL
# SQLite doesn't support ALTER COLUMN, so we recreate the table
execute(
"CREATE TABLE social_links_new (
id BLOB PRIMARY KEY,
platform TEXT NOT NULL,
url TEXT,
position INTEGER NOT NULL DEFAULT 0,
inserted_at TEXT NOT NULL,
updated_at TEXT NOT NULL
)",
"DROP TABLE social_links_new"
)
execute(
"INSERT INTO social_links_new SELECT * FROM social_links",
"INSERT INTO social_links SELECT * FROM social_links_new"
)
execute(
"DROP TABLE social_links",
"CREATE TABLE social_links (
id BLOB PRIMARY KEY,
platform TEXT NOT NULL,
url TEXT NOT NULL,
position INTEGER NOT NULL DEFAULT 0,
inserted_at TEXT NOT NULL,
updated_at TEXT NOT NULL
)"
)
execute(
"ALTER TABLE social_links_new RENAME TO social_links",
"ALTER TABLE social_links RENAME TO social_links_new"
)
create index(:social_links, [:position])
end
end