gitdataai/libs/migrate/sql/m20260509_000004_add_message_versioning.sql

15 lines
941 B
SQL

-- Add version management columns to ai_message for edit/regenerate with version tracking
-- version_group_id: groups all versions of the same message (original + edits)
-- version_number: sequential version within the group (1 = original, 2 = first edit, etc.)
-- is_latest: marks the current active version in the group
ALTER TABLE ai_message
ADD COLUMN IF NOT EXISTS version_group_id UUID,
ADD COLUMN IF NOT EXISTS version_number INT NOT NULL DEFAULT 1,
ADD COLUMN IF NOT EXISTS is_latest BOOLEAN NOT NULL DEFAULT true;
CREATE INDEX IF NOT EXISTS idx_ai_msg_version_group ON ai_message (version_group_id, version_number);
CREATE INDEX IF NOT EXISTS idx_ai_msg_version_latest ON ai_message (version_group_id, is_latest) WHERE is_latest = true;
-- Backfill: set version_group_id = id for existing messages (each existing message is its own group v1)
UPDATE ai_message SET version_group_id = id WHERE version_group_id IS NULL;