bmc_hub/migrations/1032_project_ct_archive_files.sql

22 lines
964 B
MySQL
Raw Normal View History

-- Project CT: preserve actual vTiger document bytes before the subscription ends.
CREATE TABLE IF NOT EXISTS vtiger_archive_files (
id BIGSERIAL PRIMARY KEY,
version_id BIGINT NOT NULL REFERENCES vtiger_archive_versions(id) ON DELETE RESTRICT,
document_vtiger_id VARCHAR(120) NOT NULL,
resource_vtiger_id VARCHAR(120) NOT NULL,
filename TEXT NOT NULL,
content_type TEXT,
size_bytes BIGINT NOT NULL,
content_sha256 VARCHAR(64) NOT NULL,
content BYTEA NOT NULL,
archived_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(document_vtiger_id, resource_vtiger_id, content_sha256)
);
CREATE INDEX IF NOT EXISTS idx_vtiger_archive_files_version
ON vtiger_archive_files(version_id);
DROP TRIGGER IF EXISTS trg_vtiger_archive_files_immutable ON vtiger_archive_files;
CREATE TRIGGER trg_vtiger_archive_files_immutable
BEFORE UPDATE OR DELETE ON vtiger_archive_files
FOR EACH ROW EXECUTE FUNCTION deny_vtiger_archive_mutation();