44 lines
1.1 KiB
Elixir
44 lines
1.1 KiB
Elixir
|
|
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
|