Merged in feature/textExtractionsPart2 (pull request #193)

Continue finishing the parts of the text extraction plan

* add missing fields
This commit is contained in:
Jay Brown
2025-12-02 19:13:08 +00:00
parent c45e1dd427
commit 3bdc27f4de
21 changed files with 2392 additions and 215 deletions
@@ -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);