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, primary_key: true add :name, :text, null: false add :type, :text, null: false add :doc, :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 end create table(:library_versions, primary_key: false) do add :id, :uuid, null: false, primary_key: true add :version, :text, null: false add :data, :map add :processed, :boolean, default: false add :library_id, :uuid, null: false end create table(:libraries, primary_key: false) do add :id, :uuid, null: false, 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 alter table(:libraries) do add :name, :text, null: false add :display_name, :text, null: false add :track_branches, {:array, :text}, default: [] end create table(:extensions, primary_key: false) do add :id, :uuid, null: false, primary_key: true add :name, :text, null: false add :target, :text add :default_for_target, :boolean, default: false 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, 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(:dsls) do add :name, :text, null: false add :doc, :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 remove :name 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") drop table(:extensions) alter table(:libraries) do remove :track_branches remove :display_name remove :name end drop constraint(:library_versions, "library_versions_library_id_fkey") alter table(:library_versions) do modify :library_id, :uuid end drop table(:libraries) drop table(:library_versions) drop table(:options) end end