22 lines
964 B
MySQL
22 lines
964 B
MySQL
|
|
-- 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();
|