3bdc27f4de
Continue finishing the parts of the text extraction plan * add missing fields
31 lines
1.2 KiB
SQL
31 lines
1.2 KiB
SQL
-- Add unique constraint to prevent duplicate versions per document
|
|
-- This ensures that concurrent requests cannot create the same version number
|
|
|
|
-- First, add documentId column to versions table for easier constraint enforcement
|
|
ALTER TABLE documentFieldExtractionVersions
|
|
ADD COLUMN documentId uuid;
|
|
|
|
-- Populate documentId from the joined extraction record
|
|
UPDATE documentFieldExtractionVersions dfev
|
|
SET documentId = dfe.documentId
|
|
FROM documentFieldExtractions dfe
|
|
WHERE dfev.fieldExtractionId = dfe.id;
|
|
|
|
-- Make documentId NOT NULL after populating
|
|
ALTER TABLE documentFieldExtractionVersions
|
|
ALTER COLUMN documentId SET NOT NULL;
|
|
|
|
-- Add foreign key constraint (documents table has 'id' as primary key)
|
|
ALTER TABLE documentFieldExtractionVersions
|
|
ADD CONSTRAINT fk_documentfieldextractionversions_documentid
|
|
FOREIGN KEY (documentId) REFERENCES documents(id);
|
|
|
|
-- Add unique constraint on documentId + version
|
|
-- This prevents duplicate version numbers for the same document
|
|
CREATE UNIQUE INDEX idx_unique_version_per_document
|
|
ON documentFieldExtractionVersions(documentId, version);
|
|
|
|
-- Add index for efficient lookups by documentId
|
|
CREATE INDEX idx_documentfieldextractionversions_documentid
|
|
ON documentFieldExtractionVersions(documentId);
|