Packages

Asset-first data orchestration framework for Elixir/BEAM.

Current section

Files

Jump to
flowstone priv repo migrations 0005_add_materialization_unique_index.exs
Raw

priv/repo/migrations/0005_add_materialization_unique_index.exs

defmodule FlowStone.Repo.Migrations.AddMaterializationUniqueIndex do
use Ecto.Migration
@doc """
Add unique constraint on materializations to prevent duplicate entries
for the same asset/partition/run_id combination.
This ensures identity invariants are maintained and concurrent workers
cannot insert duplicate records.
"""
def change do
# Create unique index on the identity columns
create unique_index(:flowstone_materializations, [:asset_name, :partition, :run_id],
name: :flowstone_materializations_identity_index
)
end
end