Skip to main content

lib/dust/cache/ecto/migration.ex

if Code.ensure_loaded?(Ecto.Migration) do
  defmodule Dust.Cache.Ecto.Migration do
    use Ecto.Migration

    def up do
      create table(:dust_cache, primary_key: false) do
        add(:store, :string, null: false)
        add(:path, :string, null: false)
        add(:value, :text, null: false)
        add(:type, :string, null: false)
        add(:seq, :bigint, null: false)
        # Local wall-clock (unix epoch ms) when this mirror last wrote the
        # row from a sync event. Nullable so pre-existing rows read back nil.
        add(:synced_at, :bigint, null: true)
      end

      create(unique_index(:dust_cache, [:store, :path]))
    end

    def down do
      drop(table(:dust_cache))
    end
  end
end