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