25 lines
1.0 KiB
SQL
25 lines
1.0 KiB
SQL
CREATE TABLE tenant.document_asset_objects (
|
|
id UUID PRIMARY KEY,
|
|
asset_id UUID NOT NULL REFERENCES tenant.document_assets(id) ON DELETE CASCADE,
|
|
ordinal INT NOT NULL,
|
|
s3_key TEXT NOT NULL,
|
|
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
tenant_id UUID NOT NULL REFERENCES shared.tenants(id),
|
|
CONSTRAINT document_asset_objects_ordinal_positive CHECK (ordinal >= 1),
|
|
CONSTRAINT document_asset_objects_asset_ordinal_unique UNIQUE (asset_id, ordinal)
|
|
);
|
|
|
|
CREATE INDEX idx_document_asset_objects_asset_ordinal
|
|
ON tenant.document_asset_objects(asset_id, ordinal);
|
|
|
|
CREATE INDEX document_asset_objects_tenant_id_idx ON tenant.document_asset_objects(tenant_id);
|
|
|
|
ALTER TABLE tenant.document_assets ADD COLUMN cardinality INT;
|
|
UPDATE tenant.document_assets SET cardinality = 1;
|
|
|
|
INSERT INTO tenant.document_asset_objects (id, asset_id, ordinal, s3_key, metadata, tenant_id)
|
|
SELECT gen_random_uuid(), id, 1, s3_key, metadata, tenant_id
|
|
FROM tenant.document_assets;
|
|
|
|
ALTER TABLE tenant.document_assets DROP COLUMN s3_key;
|