CREATE TABLE IF NOT EXISTS object_copies ( object_key TEXT PRIMARY KEY, b2 BIGINT, want_b2 BOOLEAN, wasabi BIGINT, want_wasabi BOOLEAN, scw BIGINT, want_scw BOOLEAN, last_attempt BIGINT NOT NULL DEFAULT 0, CONSTRAINT fk_object_copies_object_key FOREIGN KEY (object_key) REFERENCES object_keys (object_key) ON DELETE CASCADE ); CREATE INDEX IF NOT EXISTS object_copies_wasabi_null_index ON object_copies (wasabi) WHERE wasabi IS NULL AND want_wasabi = true; CREATE INDEX IF NOT EXISTS object_copies_scw_null_index ON object_copies (scw) WHERE scw IS NULL AND want_scw = true; -- object_copies serves a queue for which all objects still need to be -- replicated. However, the canonical source of truth for an object is still -- maintained in the original object_keys table. -- -- Add types for the new dcs that are introduced as part of replication v3. ALTER TYPE s3region ADD VALUE 'wasabi-eu-central-2-v3'; ALTER TYPE s3region ADD VALUE 'scw-eu-fr-v3';