22 lines
1.8 KiB
SQL
22 lines
1.8 KiB
SQL
ALTER TABLE knowledge_bases ADD COLUMN IF NOT EXISTS version_state varchar(32) NOT NULL DEFAULT '';
|
|||
|
|
ALTER TABLE workbench_resource_forks ADD COLUMN IF NOT EXISTS status varchar(32) NOT NULL DEFAULT 'ready';
|
||
|
|
ALTER TABLE workbench_resource_submissions ADD COLUMN IF NOT EXISTS snapshot_id varchar(36) NOT NULL DEFAULT '';
|
||
|
|
ALTER TABLE workbench_resource_submissions ADD COLUMN IF NOT EXISTS published_id varchar(36) NOT NULL DEFAULT '';
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_knowledge_version_jobs (
|
||
|
|
id varchar(36) PRIMARY KEY, tenant_id bigint NOT NULL, owner_id varchar(36) NOT NULL,
|
||
|
|
fork_id varchar(36) NOT NULL REFERENCES workbench_resource_forks(id),
|
||
|
|
submission_id varchar(36) NOT NULL DEFAULT '', purpose varchar(16) NOT NULL,
|
||
|
|
source_id varchar(36) NOT NULL, target_id varchar(36) NOT NULL, expected_hash varchar(64) NOT NULL,
|
||
|
|
status varchar(16) NOT NULL, processed integer NOT NULL DEFAULT 0, total integer NOT NULL DEFAULT 0,
|
||
|
|
attempts integer NOT NULL DEFAULT 0, error text NOT NULL DEFAULT '', lease_token varchar(36) NOT NULL DEFAULT '',
|
||
|
|
lease_until timestamptz, abandoned_ids jsonb NOT NULL DEFAULT '[]',
|
||
|
|
created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS knowledge_version_job_claim ON workbench_knowledge_version_jobs(status,lease_until,created_at);
|
||
|
|
CREATE INDEX IF NOT EXISTS knowledge_version_job_owner ON workbench_knowledge_version_jobs(tenant_id,owner_id,created_at);
|
||
|
|
CREATE TABLE IF NOT EXISTS workbench_knowledge_version_aliases (
|
||
|
|
tenant_id bigint NOT NULL, source_id varchar(36) NOT NULL, current_id varchar(36) NOT NULL,
|
||
|
|
updated_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY(tenant_id,source_id)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS knowledge_version_alias_current ON workbench_knowledge_version_aliases(tenant_id,current_id);
|