27 lines
1 KiB
MySQL
27 lines
1 KiB
MySQL
|
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';
|