Skip to content
Snippets Groups Projects

Draft: EHN: file system: link

Open Timm Fitschen requested to merge f-filesystem-link into f-filesystem-directory
Files
7
@@ -39,7 +39,8 @@ ALTER TABLE files ADD COLUMN IF NOT EXISTS (
parent_directory INT UNSIGNED DEFAULT NULL,
mimetype VARBINARY(255) DEFAULT NULL,
file_storage_id VARBINARY(255) NOT NULL DEFAULT "DEFAULT",
file_key VARBINARY(16000) DEFAULT NULL
file_key VARBINARY(16000) DEFAULT NULL,
link_target INT UNSIGNED DEFAULT NULL
);
-- ... and to the corresponding archive_files table.
@@ -49,7 +50,8 @@ ALTER TABLE archive_files ADD COLUMN IF NOT EXISTS (
parent_directory INT UNSIGNED DEFAULT NULL,
mimetype VARBINARY(255) DEFAULT NULL,
file_storage_id VARBINARY(255) NOT NULL DEFAULT "DEFAULT",
file_key VARBINARY(16000) DEFAULT NULL
file_key VARBINARY(16000) DEFAULT NULL,
link_target INT UNSIGNED DEFAULT NULL
);
-- no two files at the same path are allowed.
@@ -59,13 +61,19 @@ ALTER TABLE files ADD FOREIGN KEY (parent_directory) REFERENCES entities (id);
ALTER TABLE archive_files ADD FOREIGN KEY (parent_directory) REFERENCES entities (id) ON DELETE CASCADE;
ALTER TABLE entities MODIFY COLUMN `role` enum('RECORDTYPE','RECORD','FILE','_REPLACEMENT','PROPERTY','DATATYPE','ROLE','QUERYTEMPLATE', 'DIRECTORY') COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE entities MODIFY COLUMN `role` enum('RECORDTYPE','RECORD','FILE','_REPLACEMENT','PROPERTY','DATATYPE','ROLE','QUERYTEMPLATE', 'DIRECTORY', 'LINK') COLLATE utf8_unicode_ci NOT NULL;
-- Add a new special role "DIRECTORY"
INSERT IGNORE INTO entities (id, description, role, acl) VALUES (9, "The directory role.", "ROLE", 0);
INSERT IGNORE INTO name_data (domain_id, entity_id, property_id, value, status, pidx) VALUES (0, 9, 20, "DIRECTORY", "FIX", 0);
INSERT IGNORE INTO entity_ids (id, internal_id) VALUES (9,9);
-- Add a new special role "LINK"
INSERT IGNORE INTO entities (id, description, role, acl) VALUES (10, "The link role.", "ROLE", 0);
INSERT IGNORE INTO name_data (domain_id, entity_id, property_id, value, status, pidx) VALUES (0, 10, 20, "LINK", "FIX", 0);
INSERT IGNORE INTO entity_ids (id, internal_id) VALUES (10,10);
-- In the default file storage back-end the key is just the path.
UPDATE files SET file_key=path;
UPDATE archive_files SET file_key=path;
Loading