mirror of
https://github.com/bonfire-networks/bonfire-app.git
synced 2024-04-28 23:38:44 +00:00
58 lines
1.8 KiB
Elixir
58 lines
1.8 KiB
Elixir
defmodule Chaskiq.Repo.Migrations.CreateActiveStorageTables do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
create table(:active_storage_blobs) do
|
|
# add :id, :uuid, primary_key: true, null: false
|
|
add(:key, :string, null: false)
|
|
add(:filename, :string, null: false)
|
|
add(:content_type, :string)
|
|
add(:metadata, :string)
|
|
add(:service_name, :string, null: false)
|
|
add(:byte_size, :integer, null: false)
|
|
add(:checksum, :string)
|
|
|
|
timestamps(inserted_at: :created_at, updated_at: :updated_at)
|
|
end
|
|
|
|
create(unique_index(:active_storage_blobs, [:key]))
|
|
|
|
create table(:active_storage_attachments) do
|
|
add(:name, :string, null: false)
|
|
add(:record_id, :integer)
|
|
add(:record_type, :string)
|
|
|
|
add(:blob_id, :integer)
|
|
add(:blob_type, :string)
|
|
|
|
timestamps(inserted_at: :created_at, updated_at: :updated_at)
|
|
end
|
|
|
|
create(
|
|
index("active_storage_attachments", [:record_type, :record_id, :name, :blob_id],
|
|
name: :index_active_storage_attachments_uniqueness,
|
|
unique: true
|
|
)
|
|
)
|
|
|
|
create(
|
|
index("active_storage_attachments", [:blob_id],
|
|
name: :index_active_storage_attachments_on_blob_id,
|
|
unique: false
|
|
)
|
|
)
|
|
|
|
create table(:active_storage_variant_records) do
|
|
# for binary types use:
|
|
# add :blob_id, references(:active_storage_blobs, on_delete: :nothing, type: :binary_id)
|
|
add(:blob_id, references(:active_storage_blobs, on_delete: :nothing))
|
|
add(:variation_digest, :string, null: false)
|
|
timestamps(inserted_at: :created_at, updated_at: :updated_at)
|
|
end
|
|
|
|
create(index(:active_storage_variant_records, [:blob_id, :variation_digest]))
|
|
# with: [group_id: :group_id])
|
|
# add :blob_id, references("active_storage_blobs")
|
|
end
|
|
end
|