mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
20 lines
1.0 KiB
SQL
20 lines
1.0 KiB
SQL
-- Добавляем колонку order в таблицу draft_invoice_items
|
||
-- Миграция для добавления поля сортировки позиций в черновике накладной
|
||
|
||
-- Добавляем колонку order со значением по умолчанию 0
|
||
ALTER TABLE draft_invoice_items ADD COLUMN "order" INTEGER NOT NULL DEFAULT 0;
|
||
|
||
-- Инициализируем значения order для существующих записей
|
||
-- Сортируем по created_at для сохранения текущего порядка
|
||
WITH ordered_items AS (
|
||
SELECT id, ROW_NUMBER() OVER (PARTITION BY draft_id ORDER BY created_at ASC) as row_num
|
||
FROM draft_invoice_items
|
||
)
|
||
UPDATE draft_invoice_items
|
||
SET "order" = ordered_items.row_num
|
||
FROM ordered_items
|
||
WHERE draft_invoice_items.id = ordered_items.id;
|
||
|
||
-- Создаем индекс для оптимизации сортировки
|
||
CREATE INDEX idx_draft_items_order ON draft_invoice_items(draft_id, "order");
|