philomena/priv/repo/migrations/20210929181319_rename_body_fields.exs

116 lines
4.4 KiB
Elixir

defmodule Philomena.Repo.Migrations.RenameBodyFields do
use Ecto.Migration
def change do
# Rename textile fields to *_textile,
# while putting Markdown fields in their place.
rename table("comments"), :body, to: :body_textile
rename table("comments"), :body_md, to: :body
rename table("messages"), :body, to: :body_textile
rename table("messages"), :body_md, to: :body
rename table("mod_notes"), :body, to: :body_textile
rename table("mod_notes"), :body_md, to: :body
rename table("posts"), :body, to: :body_textile
rename table("posts"), :body_md, to: :body
rename table("commission_items"), :description, to: :description_textile
rename table("commission_items"), :add_ons, to: :add_ons_textile
rename table("commission_items"), :description_md, to: :description
rename table("commission_items"), :add_ons_md, to: :add_ons
rename table("images"), :description, to: :description_textile
rename table("images"), :scratchpad, to: :scratchpad_textile
rename table("images"), :description_md, to: :description
rename table("images"), :scratchpad_md, to: :scratchpad
rename table("tags"), :description, to: :description_textile
rename table("tags"), :description_md, to: :description
rename table("users"), :description, to: :description_textile
rename table("users"), :scratchpad, to: :scratchpad_textile
rename table("users"), :description_md, to: :description
rename table("users"), :scratchpad_md, to: :scratchpad
rename table("dnp_entries"), :conditions, to: :conditions_textile
rename table("dnp_entries"), :reason, to: :reason_textile
rename table("dnp_entries"), :instructions, to: :instructions_textile
rename table("dnp_entries"), :conditions_md, to: :conditions
rename table("dnp_entries"), :reason_md, to: :reason
rename table("dnp_entries"), :instructions_md, to: :instructions
rename table("commissions"), :information, to: :information_textile
rename table("commissions"), :contact, to: :contact_textile
rename table("commissions"), :will_create, to: :will_create_textile
rename table("commissions"), :will_not_create, to: :will_not_create_textile
rename table("commissions"), :information_md, to: :information
rename table("commissions"), :contact_md, to: :contact
rename table("commissions"), :will_create_md, to: :will_create
rename table("commissions"), :will_not_create_md, to: :will_not_create
rename table("reports"), :reason, to: :reason_textile
rename table("reports"), :reason_md, to: :reason
# Change constraints
alter table("comments") do
modify :body_textile, :varchar, default: ""
modify :body, :varchar, null: false
end
alter table("posts") do
modify :body_textile, :varchar, default: ""
modify :body, :varchar, null: false
end
alter table("messages") do
modify :body_textile, :varchar, default: ""
modify :body, :varchar, null: false
end
alter table("mod_notes") do
modify :body_textile, :text, default: ""
modify :body, :varchar, null: false
end
alter table("dnp_entries") do
modify :reason_textile, :varchar, default: ""
modify :reason, :varchar, null: false
modify :conditions_textile, :varchar, default: ""
modify :conditions, :varchar, null: false
modify :instructions_textile, :varchar, default: ""
modify :instructions, :varchar, null: false
end
alter table("reports") do
modify :reason_textile, :varchar, default: ""
modify :reason, :varchar, null: false
end
execute("update images set description='' where description is null;")
execute("update tags set description='' where description is null;")
execute("alter table images alter column description set default ''::character varying, alter column description set not null;")
execute("alter table tags alter column description set default ''::character varying, alter column description set not null;")
# Unneeded columns
alter table("badges") do
remove :description_md, :varchar, default: nil
end
alter table("channels") do
remove :description, :varchar, default: ""
remove :description_md, :varchar, default: ""
end
alter table("filters") do
remove :description_md, :varchar, default: nil
end
alter table("galleries") do
remove :description_md, :varchar, default: nil
end
end
end