mirror of
https://github.com/willchen96/mike.git
synced 2026-06-18 21:15:13 +02:00
32 lines
1.1 KiB
SQL
32 lines
1.1 KiB
SQL
-- Migration date: 2026-04-23
|
|
|
|
-- Migration: give each assistant-produced version of a document a
|
|
-- monotonic per-document version number (V1, V2, …). Only
|
|
-- `source = 'assistant_edit'` rows carry a number; the original upload
|
|
-- and the ephemeral user_accept/user_reject rows stay NULL. Numbers are
|
|
-- stable once written — accept/reject now overwrite bytes in place
|
|
-- rather than insert new rows, so the sequence never has gaps.
|
|
|
|
ALTER TABLE public.document_versions
|
|
ADD COLUMN IF NOT EXISTS version_number integer;
|
|
|
|
-- Backfill: assign 1..N to the existing assistant_edit rows per doc,
|
|
-- ordered by created_at ascending. Safe to re-run (only writes NULLs).
|
|
WITH numbered AS (
|
|
SELECT
|
|
id,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY document_id
|
|
ORDER BY created_at ASC
|
|
) AS rn
|
|
FROM public.document_versions
|
|
WHERE source = 'assistant_edit'
|
|
)
|
|
UPDATE public.document_versions dv
|
|
SET version_number = n.rn
|
|
FROM numbered n
|
|
WHERE dv.id = n.id
|
|
AND dv.version_number IS NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS document_versions_doc_vnum_idx
|
|
ON public.document_versions (document_id, version_number);
|