ash_hq/priv/repo/migrations/20230122063404_migrate_resources43.exs

218 lines
5.8 KiB
Elixir
Raw Normal View History

defmodule AshHq.Repo.Migrations.MigrateResources43 do
@moduledoc """
Updates resources based on their most recent snapshots.
This file was autogenerated with `mix ash_postgres.generate_migrations`
"""
use Ecto.Migration
def up do
create table(:discord_threads, primary_key: false) do
add :id, :bigint, null: false, primary_key: true
add :type, :bigint
add :name, :text, null: false
add :author, :text, null: false
add :create_timestamp, :utc_datetime, null: false
add :channel_id, :bigint, null: false
end
create table(:discord_thread_tags, primary_key: false) do
add :thread_id,
references(:discord_threads,
column: :id,
name: "discord_thread_tags_thread_id_fkey",
type: :bigint,
prefix: "public"
),
primary_key: true,
null: false
add :tag_id, :bigint, null: false, primary_key: true
end
create table(:discord_tags, primary_key: false) do
add :id, :bigint, null: false, primary_key: true
end
alter table(:discord_thread_tags) do
modify :tag_id,
references(:discord_tags,
column: :id,
prefix: "public",
name: "discord_thread_tags_tag_id_fkey",
type: :bigint
)
end
alter table(:discord_tags) do
add :name, :citext, null: false
add :channel_id, :bigint
end
create table(:discord_reactions, primary_key: false) do
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
add :count, :bigint, null: false
add :emoji, :text, null: false
add :message_id, :bigint, null: false
end
create table(:discord_messages, primary_key: false) do
add :id, :bigint, null: false, primary_key: true
end
alter table(:discord_reactions) do
modify :message_id,
references(:discord_messages,
column: :id,
prefix: "public",
name: "discord_reactions_message_id_fkey",
type: :bigint
)
end
create unique_index(:discord_reactions, [:emoji, :message_id],
name: "discord_reactions_unique_message_emoji_index"
)
alter table(:discord_messages) do
add :author, :text, null: false
add :content, :text
add :content_html, :text
add :timestamp, :utc_datetime, null: false
add :thread_id,
references(:discord_threads,
column: :id,
name: "discord_messages_thread_id_fkey",
type: :bigint,
prefix: "public"
),
null: false
end
create table(:discord_channels, primary_key: false) do
add :id, :bigint, null: false, primary_key: true
end
alter table(:discord_threads) do
modify :channel_id,
references(:discord_channels,
column: :id,
prefix: "public",
name: "discord_threads_channel_id_fkey",
type: :bigint
)
end
alter table(:discord_tags) do
modify :channel_id,
references(:discord_channels,
column: :id,
prefix: "public",
name: "discord_tags_channel_id_fkey",
type: :bigint
)
end
create unique_index(:discord_tags, [:name, :channel_id],
name: "discord_tags_unique_name_per_channel_index"
)
alter table(:discord_channels) do
add :name, :text, null: false
add :order, :bigint, null: false
end
create table(:discord_attachments, primary_key: false) do
add :id, :bigint, null: false, primary_key: true
add :filename, :text
add :size, :bigint
add :url, :text
add :proxy_url, :text
add :height, :bigint
add :width, :bigint
add :message_id,
references(:discord_messages,
column: :id,
name: "discord_attachments_message_id_fkey",
type: :bigint,
prefix: "public"
),
null: false
end
end
def down do
drop constraint(:discord_attachments, "discord_attachments_message_id_fkey")
drop table(:discord_attachments)
alter table(:discord_channels) do
remove :order
remove :name
end
drop_if_exists unique_index(:discord_tags, [:name, :channel_id],
name: "discord_tags_unique_name_per_channel_index"
)
drop constraint(:discord_tags, "discord_tags_channel_id_fkey")
alter table(:discord_tags) do
modify :channel_id, :bigint
end
drop constraint(:discord_threads, "discord_threads_channel_id_fkey")
alter table(:discord_threads) do
modify :channel_id, :bigint
end
drop table(:discord_channels)
drop constraint(:discord_messages, "discord_messages_thread_id_fkey")
alter table(:discord_messages) do
remove :thread_id
remove :timestamp
remove :content_html
remove :content
remove :author
end
drop_if_exists unique_index(:discord_reactions, [:emoji, :message_id],
name: "discord_reactions_unique_message_emoji_index"
)
drop constraint(:discord_reactions, "discord_reactions_message_id_fkey")
alter table(:discord_reactions) do
modify :message_id, :bigint
end
drop table(:discord_messages)
drop table(:discord_reactions)
alter table(:discord_tags) do
remove :channel_id
remove :name
end
drop constraint(:discord_thread_tags, "discord_thread_tags_tag_id_fkey")
alter table(:discord_thread_tags) do
modify :tag_id, :bigint
end
drop table(:discord_tags)
drop constraint(:discord_thread_tags, "discord_thread_tags_thread_id_fkey")
drop table(:discord_thread_tags)
drop table(:discord_threads)
end
end