Merged in feature/textExtractionsPart2 (pull request #193)
Continue finishing the parts of the text extraction plan * add missing fields
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
-- Remove the unique constraint and documentId column
|
||||
|
||||
DROP INDEX IF EXISTS idx_documentfieldextractionversions_documentid;
|
||||
DROP INDEX IF EXISTS idx_unique_version_per_document;
|
||||
|
||||
ALTER TABLE documentFieldExtractionVersions
|
||||
DROP CONSTRAINT IF EXISTS fk_documentfieldextractionversions_documentid;
|
||||
|
||||
ALTER TABLE documentFieldExtractionVersions
|
||||
DROP COLUMN IF EXISTS documentId;
|
||||
@@ -0,0 +1,30 @@
|
||||
-- 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);
|
||||
Reference in New Issue
Block a user