mirror of
https://github.com/ash-project/ash_postgres.git
synced 2024-09-20 21:43:12 +12:00
127 lines
3 KiB
Elixir
127 lines
3 KiB
Elixir
defmodule AshPostgres.TestRepo.Migrations.MultiDomainCalculations 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(:sub_items, primary_key: false) do
|
|
add(:id, :uuid, null: false, default: fragment("uuid_generate_v7()"), primary_key: true)
|
|
add(:amount, :bigint, null: false)
|
|
|
|
add(:inserted_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
|
|
add(:updated_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
|
|
add(:other_item_id, :uuid, null: false)
|
|
end
|
|
|
|
create table(:other_items, primary_key: false) do
|
|
add(:id, :uuid, null: false, default: fragment("uuid_generate_v7()"), primary_key: true)
|
|
end
|
|
|
|
alter table(:sub_items) do
|
|
modify(
|
|
:other_item_id,
|
|
references(:other_items,
|
|
column: :id,
|
|
name: "sub_items_other_item_id_fkey",
|
|
type: :uuid,
|
|
prefix: "public",
|
|
on_delete: :delete_all
|
|
)
|
|
)
|
|
end
|
|
|
|
create(index(:sub_items, [:other_item_id]))
|
|
|
|
alter table(:other_items) do
|
|
add(:inserted_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
|
|
add(:updated_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
|
|
add(:item_id, :uuid, null: false)
|
|
end
|
|
|
|
create table(:items, primary_key: false) do
|
|
add(:id, :uuid, null: false, default: fragment("uuid_generate_v7()"), primary_key: true)
|
|
end
|
|
|
|
alter table(:other_items) do
|
|
modify(
|
|
:item_id,
|
|
references(:items,
|
|
column: :id,
|
|
name: "other_items_item_id_fkey",
|
|
type: :uuid,
|
|
prefix: "public",
|
|
on_delete: :delete_all
|
|
)
|
|
)
|
|
end
|
|
|
|
create(index(:other_items, [:item_id]))
|
|
|
|
alter table(:items) do
|
|
add(:inserted_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
|
|
add(:updated_at, :utc_datetime_usec,
|
|
null: false,
|
|
default: fragment("(now() AT TIME ZONE 'utc')")
|
|
)
|
|
end
|
|
end
|
|
|
|
def down do
|
|
alter table(:items) do
|
|
remove(:updated_at)
|
|
remove(:inserted_at)
|
|
end
|
|
|
|
drop_if_exists(index(:other_items, [:item_id]))
|
|
|
|
drop(constraint(:other_items, "other_items_item_id_fkey"))
|
|
|
|
alter table(:other_items) do
|
|
modify(:item_id, :uuid)
|
|
end
|
|
|
|
drop(table(:items))
|
|
|
|
alter table(:other_items) do
|
|
remove(:item_id)
|
|
remove(:updated_at)
|
|
remove(:inserted_at)
|
|
end
|
|
|
|
drop_if_exists(index(:sub_items, [:other_item_id]))
|
|
|
|
drop(constraint(:sub_items, "sub_items_other_item_id_fkey"))
|
|
|
|
alter table(:sub_items) do
|
|
modify(:other_item_id, :uuid)
|
|
end
|
|
|
|
drop(table(:other_items))
|
|
|
|
drop(table(:sub_items))
|
|
end
|
|
end
|