diff --git a/tests/_data/schema.sql b/tests/_data/schema.sql index cd9c92a..745a4bb 100644 --- a/tests/_data/schema.sql +++ b/tests/_data/schema.sql @@ -84,4 +84,113 @@ CREATE TABLE `user` ( UNIQUE KEY `user_unique_username` (`username`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; + +DROP TABLE IF EXISTS `auth_assignment`; +CREATE TABLE `auth_assignment` ( + `item_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `user_id` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `created_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Structure `auth_item` +-- + +DROP TABLE IF EXISTS `auth_item`; +CREATE TABLE `auth_item` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `type` smallint(6) NOT NULL, + `description` text COLLATE utf8_unicode_ci, + `rule_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Structure `auth_item_child` +-- + +DROP TABLE IF EXISTS `auth_item_child`; +CREATE TABLE `auth_item_child` ( + `parent` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `child` varchar(64) COLLATE utf8_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Structure `auth_rule` +-- + +DROP TABLE IF EXISTS `auth_rule`; +CREATE TABLE `auth_rule` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Indexes +-- + +-- +-- Index for `auth_assignment` +-- +ALTER TABLE `auth_assignment` + ADD PRIMARY KEY (`item_name`,`user_id`), + ADD KEY `auth_assignment_user_id_idx` (`user_id`); + +-- +-- Index for `auth_item` +-- +ALTER TABLE `auth_item` + ADD PRIMARY KEY (`name`), + ADD KEY `rule_name` (`rule_name`), + ADD KEY `idx-auth_item-type` (`type`); + +-- +-- Index for `auth_item_child` +-- +ALTER TABLE `auth_item_child` + ADD PRIMARY KEY (`parent`,`child`), + ADD KEY `child` (`child`); + +-- +-- Index for `auth_rule` +-- +ALTER TABLE `auth_rule` + ADD PRIMARY KEY (`name`); + +-- +-- Restrictions +-- + +-- +-- `auth_assignment` filters +-- +ALTER TABLE `auth_assignment` + ADD CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- `auth_item` filters +-- +ALTER TABLE `auth_item` + ADD CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- +-- `auth_item_child` filters +-- +ALTER TABLE `auth_item_child` + ADD CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; +COMMIT; + + SET FOREIGN_KEY_CHECKS = 1; +