mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-21 05:43:12 +12:00
30 lines
719 B
Elixir
30 lines
719 B
Elixir
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
|