defmodule AshHq.Repo.Migrations.AddLibraryOrder 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 alter table(:libraries) do add :order, :bigint, null: true end execute(""" WITH sorted AS (SELECT id, ROW_NUMBER() OVER(ORDER BY name ASC) AS new_order FROM libraries) UPDATE libraries SET "order" = (SELECT new_order FROM sorted WHERE sorted.id = libraries.id) - 1; """) alter table(:libraries) do modify :order, :bigint, null: false end end def down do alter table(:libraries) do remove :order end end end