mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-20 13:23:38 +12:00
335 lines
9.3 KiB
Elixir
335 lines
9.3 KiB
Elixir
|
defmodule AshHq.Repo.Migrations.MigrateResources1 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(:options, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
add :name, :text, null: false
|
||
|
add :type, :text, null: false
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :required, :boolean, null: false, default: false
|
||
|
add :default, :text
|
||
|
add :path, {:array, :text}
|
||
|
add :order, :bigint, null: false
|
||
|
add :dsl_id, :uuid, null: false
|
||
|
add :library_version_id, :uuid, null: false
|
||
|
add :extension_id, :uuid, null: false
|
||
|
end
|
||
|
|
||
|
create table(:modules, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
add :name, :text, null: false
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :order, :bigint, null: false
|
||
|
add :library_version_id, :uuid, null: false
|
||
|
add :extension_id, :uuid, null: false
|
||
|
end
|
||
|
|
||
|
create table(:library_versions, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
end
|
||
|
|
||
|
alter table(:modules) do
|
||
|
modify :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "modules_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
)
|
||
|
end
|
||
|
|
||
|
alter table(:library_versions) do
|
||
|
add :version, :text, null: false
|
||
|
add :data, :map
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :processed, :boolean, default: false
|
||
|
add :library_id, :uuid, null: false
|
||
|
end
|
||
|
|
||
|
create table(:libraries, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
end
|
||
|
|
||
|
alter table(:library_versions) do
|
||
|
modify :library_id,
|
||
|
references(:libraries,
|
||
|
column: :id,
|
||
|
name: "library_versions_library_id_fkey",
|
||
|
type: :uuid
|
||
|
)
|
||
|
end
|
||
|
|
||
|
create unique_index(:library_versions, [:library_id, :version],
|
||
|
name: "library_versions_unique_version_for_library_index"
|
||
|
)
|
||
|
|
||
|
alter table(:libraries) do
|
||
|
add :name, :text, null: false
|
||
|
add :display_name, :text, null: false
|
||
|
add :track_branches, {:array, :text}, default: []
|
||
|
end
|
||
|
|
||
|
create table(:guides, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
add :order, :bigint, null: false
|
||
|
add :name, :text, null: false
|
||
|
add :text, :text, null: false, default: ""
|
||
|
add :text_html, :text
|
||
|
|
||
|
add :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "guides_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
),
|
||
|
null: false
|
||
|
end
|
||
|
|
||
|
create table(:functions, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
add :name, :text, null: false
|
||
|
add :arity, :bigint, null: false
|
||
|
add :type, :text, null: false
|
||
|
add :heads, {:array, :text}, default: []
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :order, :bigint, null: false
|
||
|
|
||
|
add :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "functions_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
),
|
||
|
null: false
|
||
|
|
||
|
add :extension_id, :uuid, null: false
|
||
|
add :module_id, :uuid, null: false
|
||
|
end
|
||
|
|
||
|
create table(:extensions, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
end
|
||
|
|
||
|
alter table(:modules) do
|
||
|
modify :extension_id,
|
||
|
references(:extensions, column: :id, name: "modules_extension_id_fkey", type: :uuid)
|
||
|
end
|
||
|
|
||
|
alter table(:functions) do
|
||
|
modify :extension_id,
|
||
|
references(:extensions, column: :id, name: "functions_extension_id_fkey", type: :uuid)
|
||
|
end
|
||
|
|
||
|
alter table(:functions) do
|
||
|
modify :module_id,
|
||
|
references(:modules, column: :id, name: "functions_module_id_fkey", type: :uuid)
|
||
|
end
|
||
|
|
||
|
alter table(:extensions) do
|
||
|
add :name, :text, null: false
|
||
|
add :target, :text
|
||
|
add :default_for_target, :boolean, default: false
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :type, :text, null: false
|
||
|
add :order, :bigint, null: false
|
||
|
|
||
|
add :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "extensions_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
),
|
||
|
null: false
|
||
|
end
|
||
|
|
||
|
create unique_index(:extensions, [:library_version_id, :name],
|
||
|
name: "extensions_unique_name_by_library_version_index"
|
||
|
)
|
||
|
|
||
|
create table(:dsls, primary_key: false) do
|
||
|
add :id, :uuid, null: false, default: fragment("uuid_generate_v4()"), primary_key: true
|
||
|
end
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :dsl_id, references(:dsls, column: :id, name: "options_dsl_id_fkey", type: :uuid)
|
||
|
end
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "options_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
)
|
||
|
end
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :extension_id,
|
||
|
references(:extensions, column: :id, name: "options_extension_id_fkey", type: :uuid)
|
||
|
end
|
||
|
|
||
|
alter table(:dsls) do
|
||
|
add :name, :text, null: false
|
||
|
add :doc, :text, null: false, default: ""
|
||
|
add :doc_html, :text
|
||
|
add :examples, {:array, :text}
|
||
|
add :args, {:array, :text}
|
||
|
add :path, {:array, :text}
|
||
|
add :recursive_as, :text
|
||
|
add :order, :bigint, null: false
|
||
|
add :type, :text, null: false
|
||
|
|
||
|
add :library_version_id,
|
||
|
references(:library_versions,
|
||
|
column: :id,
|
||
|
name: "dsls_library_version_id_fkey",
|
||
|
type: :uuid
|
||
|
),
|
||
|
null: false
|
||
|
|
||
|
add :extension_id,
|
||
|
references(:extensions, column: :id, name: "dsls_extension_id_fkey", type: :uuid),
|
||
|
null: false
|
||
|
|
||
|
add :dsl_id, references(:dsls, column: :id, name: "dsls_dsl_id_fkey", type: :uuid)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down do
|
||
|
drop constraint(:dsls, "dsls_dsl_id_fkey")
|
||
|
|
||
|
drop constraint(:dsls, "dsls_extension_id_fkey")
|
||
|
|
||
|
drop constraint(:dsls, "dsls_library_version_id_fkey")
|
||
|
|
||
|
alter table(:dsls) do
|
||
|
remove :dsl_id
|
||
|
remove :extension_id
|
||
|
remove :library_version_id
|
||
|
remove :type
|
||
|
remove :order
|
||
|
remove :recursive_as
|
||
|
remove :path
|
||
|
remove :args
|
||
|
remove :examples
|
||
|
remove :doc_html
|
||
|
remove :doc
|
||
|
remove :name
|
||
|
end
|
||
|
|
||
|
drop constraint(:options, "options_extension_id_fkey")
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :extension_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop constraint(:options, "options_library_version_id_fkey")
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :library_version_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop constraint(:options, "options_dsl_id_fkey")
|
||
|
|
||
|
alter table(:options) do
|
||
|
modify :dsl_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop table(:dsls)
|
||
|
|
||
|
drop_if_exists unique_index(:extensions, [:library_version_id, :name],
|
||
|
name: "extensions_unique_name_by_library_version_index"
|
||
|
)
|
||
|
|
||
|
drop constraint(:extensions, "extensions_library_version_id_fkey")
|
||
|
|
||
|
alter table(:extensions) do
|
||
|
remove :library_version_id
|
||
|
remove :order
|
||
|
remove :type
|
||
|
remove :doc_html
|
||
|
remove :doc
|
||
|
remove :default_for_target
|
||
|
remove :target
|
||
|
remove :name
|
||
|
end
|
||
|
|
||
|
drop constraint(:functions, "functions_module_id_fkey")
|
||
|
|
||
|
alter table(:functions) do
|
||
|
modify :module_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop constraint(:functions, "functions_extension_id_fkey")
|
||
|
|
||
|
alter table(:functions) do
|
||
|
modify :extension_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop constraint(:modules, "modules_extension_id_fkey")
|
||
|
|
||
|
alter table(:modules) do
|
||
|
modify :extension_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop table(:extensions)
|
||
|
|
||
|
drop constraint(:functions, "functions_library_version_id_fkey")
|
||
|
|
||
|
drop table(:functions)
|
||
|
|
||
|
drop constraint(:guides, "guides_library_version_id_fkey")
|
||
|
|
||
|
drop table(:guides)
|
||
|
|
||
|
alter table(:libraries) do
|
||
|
remove :track_branches
|
||
|
remove :display_name
|
||
|
remove :name
|
||
|
end
|
||
|
|
||
|
drop_if_exists unique_index(:library_versions, [:library_id, :version],
|
||
|
name: "library_versions_unique_version_for_library_index"
|
||
|
)
|
||
|
|
||
|
drop constraint(:library_versions, "library_versions_library_id_fkey")
|
||
|
|
||
|
alter table(:library_versions) do
|
||
|
modify :library_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop table(:libraries)
|
||
|
|
||
|
alter table(:library_versions) do
|
||
|
remove :library_id
|
||
|
remove :processed
|
||
|
remove :doc_html
|
||
|
remove :doc
|
||
|
remove :data
|
||
|
remove :version
|
||
|
end
|
||
|
|
||
|
drop constraint(:modules, "modules_library_version_id_fkey")
|
||
|
|
||
|
alter table(:modules) do
|
||
|
modify :library_version_id, :uuid
|
||
|
end
|
||
|
|
||
|
drop table(:library_versions)
|
||
|
|
||
|
drop table(:modules)
|
||
|
|
||
|
drop table(:options)
|
||
|
end
|
||
|
end
|