43 lines
1.3 KiB
MySQL
43 lines
1.3 KiB
MySQL
|
CREATE TABLE director_basket (
|
||
|
uuid VARBINARY(16) NOT NULL,
|
||
|
basket_name VARCHAR(64) NOT NULL,
|
||
|
owner_type ENUM(
|
||
|
'user',
|
||
|
'usergroup',
|
||
|
'role'
|
||
|
) NOT NULL,
|
||
|
owner_value VARCHAR(255) NOT NULL,
|
||
|
objects MEDIUMTEXT NOT NULL, -- json-encoded
|
||
|
PRIMARY KEY (uuid),
|
||
|
UNIQUE INDEX basket_name (basket_name)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||
|
|
||
|
CREATE TABLE director_basket_content (
|
||
|
checksum VARBINARY(20) NOT NULL,
|
||
|
summary VARCHAR(255) NOT NULL, -- json
|
||
|
content MEDIUMTEXT NOT NULL, -- json
|
||
|
PRIMARY KEY (checksum)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||
|
|
||
|
CREATE TABLE director_basket_snapshot (
|
||
|
basket_uuid VARBINARY(16) NOT NULL,
|
||
|
ts_create BIGINT(20) NOT NULL,
|
||
|
content_checksum VARBINARY(20) NOT NULL,
|
||
|
PRIMARY KEY (basket_uuid, ts_create),
|
||
|
INDEX sort_idx (ts_create),
|
||
|
CONSTRAINT basked_snapshot_basket
|
||
|
FOREIGN KEY director_basket_snapshot (basket_uuid)
|
||
|
REFERENCES director_basket (uuid)
|
||
|
ON DELETE CASCADE
|
||
|
ON UPDATE RESTRICT,
|
||
|
CONSTRAINT basked_snapshot_content
|
||
|
FOREIGN KEY content_checksum (content_checksum)
|
||
|
REFERENCES director_basket_content (checksum)
|
||
|
ON DELETE RESTRICT
|
||
|
ON UPDATE RESTRICT
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||
|
|
||
|
INSERT INTO director_schema_migration
|
||
|
(schema_version, migration_time)
|
||
|
VALUES (153, NOW());
|