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
6
@@ -44,7 +44,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.
@@ -54,7 +55,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.
@@ -64,12 +66,16 @@ 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','DOMAIN','PROPERTY','DATATYPE','ROLE','QUERYTEMPLATE', 'DIRECTORY') COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE entities MODIFY COLUMN `role` enum('RECORDTYPE','RECORD','FILE','DOMAIN','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);
-- 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);
-- 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