|
| 1 | +-- Create "unit_tags" table |
| 2 | +CREATE TABLE `unit_tags` ( |
| 3 | + `unit_id` varchar(36) NOT NULL, |
| 4 | + `tag_id` varchar(36) NOT NULL, |
| 5 | + PRIMARY KEY (`unit_id`, `tag_id`), |
| 6 | + INDEX `idx_unit_tags_tag_id` (`tag_id`), |
| 7 | + INDEX `idx_unit_tags_unit_id` (`unit_id`) |
| 8 | +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
1 | 9 | -- Create "permissions" table |
2 | 10 | CREATE TABLE `permissions` ( |
3 | 11 | `id` varchar(36) NOT NULL, |
4 | 12 | `org_id` varchar(36) NULL, |
5 | 13 | `name` varchar(255) NOT NULL, |
6 | | - `description` longtext NULL, |
7 | | - `created_by` longtext NULL, |
8 | | - `created_at` datetime(3) NULL, |
| 14 | + `description` text NULL, |
| 15 | + `created_by` text NULL, |
| 16 | + `created_at` datetime NULL, |
9 | 17 | PRIMARY KEY (`id`), |
10 | 18 | INDEX `idx_permissions_name` (`name`), |
11 | 19 | INDEX `idx_permissions_org_id` (`org_id`) |
12 | 20 | ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
| 21 | +-- Create "role_permissions" table |
| 22 | +CREATE TABLE `role_permissions` ( |
| 23 | + `role_id` varchar(36) NOT NULL, |
| 24 | + `permission_id` varchar(36) NOT NULL, |
| 25 | + PRIMARY KEY (`role_id`, `permission_id`), |
| 26 | + INDEX `idx_role_permissions_permission_id` (`permission_id`), |
| 27 | + INDEX `idx_role_permissions_role_id` (`role_id`) |
| 28 | +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
| 29 | +-- Create "roles" table |
| 30 | +CREATE TABLE `roles` ( |
| 31 | + `id` varchar(36) NOT NULL, |
| 32 | + `org_id` varchar(36) NULL, |
| 33 | + `name` varchar(255) NOT NULL, |
| 34 | + `description` text NULL, |
| 35 | + `created_at` datetime NULL, |
| 36 | + `created_by` text NULL, |
| 37 | + PRIMARY KEY (`id`), |
| 38 | + INDEX `idx_roles_name` (`name`), |
| 39 | + INDEX `idx_roles_org_id` (`org_id`) |
| 40 | +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
| 41 | +-- Create "tags" table |
| 42 | +CREATE TABLE `tags` ( |
| 43 | + `id` varchar(36) NOT NULL, |
| 44 | + `org_id` varchar(36) NULL, |
| 45 | + `name` varchar(255) NOT NULL, |
| 46 | + PRIMARY KEY (`id`), |
| 47 | + INDEX `idx_tags_name` (`name`), |
| 48 | + INDEX `idx_tags_org_id` (`org_id`) |
| 49 | +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
13 | 50 | -- Create "organizations" table |
14 | 51 | CREATE TABLE `organizations` ( |
15 | 52 | `id` varchar(36) NOT NULL, |
16 | 53 | `name` varchar(255) NOT NULL, |
17 | 54 | `display_name` varchar(255) NOT NULL, |
18 | 55 | `created_by` varchar(255) NOT NULL, |
19 | | - `created_at` datetime(3) NULL, |
20 | | - `updated_at` datetime(3) NULL, |
| 56 | + `created_at` datetime NULL, |
| 57 | + `updated_at` datetime NULL, |
21 | 58 | PRIMARY KEY (`id`), |
22 | 59 | UNIQUE INDEX `idx_organizations_name` (`name`) |
23 | 60 | ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
24 | | --- Create "roles" table |
25 | | -CREATE TABLE `roles` ( |
| 61 | +-- Create "units" table |
| 62 | +CREATE TABLE `units` ( |
26 | 63 | `id` varchar(36) NOT NULL, |
27 | 64 | `org_id` varchar(36) NULL, |
28 | 65 | `name` varchar(255) NOT NULL, |
29 | | - `description` longtext NULL, |
30 | | - `created_at` datetime(3) NULL, |
31 | | - `created_by` longtext NULL, |
| 66 | + `size` int NULL DEFAULT 0, |
| 67 | + `updated_at` datetime NULL, |
| 68 | + `locked` bool NULL DEFAULT 0, |
| 69 | + `lock_id` varchar(255) NULL DEFAULT "", |
| 70 | + `lock_who` varchar(255) NULL DEFAULT "", |
| 71 | + `lock_created` datetime NULL, |
32 | 72 | PRIMARY KEY (`id`), |
33 | | - INDEX `idx_roles_name` (`name`), |
34 | | - INDEX `idx_roles_org_id` (`org_id`) |
| 73 | + INDEX `idx_units_name` (`name`), |
| 74 | + INDEX `idx_units_org_id` (`org_id`) |
35 | 75 | ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
36 | | --- Create "role_permissions" table |
37 | | -CREATE TABLE `role_permissions` ( |
| 76 | +-- Create "user_roles" table |
| 77 | +CREATE TABLE `user_roles` ( |
| 78 | + `user_id` varchar(36) NOT NULL, |
38 | 79 | `role_id` varchar(36) NOT NULL, |
39 | | - `permission_id` varchar(36) NOT NULL, |
40 | | - PRIMARY KEY (`role_id`, `permission_id`), |
41 | | - INDEX `idx_role_permissions_permission_id` (`permission_id`), |
42 | | - INDEX `idx_role_permissions_role_id` (`role_id`), |
43 | | - CONSTRAINT `fk_role_permissions_permission` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, |
44 | | - CONSTRAINT `fk_role_permissions_role` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
| 80 | + `org_id` varchar(36) NOT NULL, |
| 81 | + PRIMARY KEY (`user_id`, `role_id`, `org_id`), |
| 82 | + INDEX `idx_user_roles_org_id` (`org_id`), |
| 83 | + INDEX `idx_user_roles_role_id` (`role_id`), |
| 84 | + INDEX `idx_user_roles_user_id` (`user_id`) |
| 85 | +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
| 86 | +-- Create "users" table |
| 87 | +CREATE TABLE `users` ( |
| 88 | + `id` varchar(36) NOT NULL, |
| 89 | + `subject` varchar(255) NOT NULL, |
| 90 | + `email` varchar(255) NOT NULL, |
| 91 | + `created_at` datetime NULL, |
| 92 | + `updated_at` datetime NULL, |
| 93 | + `version` int NULL, |
| 94 | + PRIMARY KEY (`id`), |
| 95 | + UNIQUE INDEX `idx_users_email` (`email`), |
| 96 | + UNIQUE INDEX `idx_users_subject` (`subject`) |
45 | 97 | ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
46 | 98 | -- Create "rules" table |
47 | 99 | CREATE TABLE `rules` ( |
@@ -85,61 +137,3 @@ CREATE TABLE `rule_units` ( |
85 | 137 | INDEX `idx_rule_units_unit_id` (`unit_id`), |
86 | 138 | CONSTRAINT `fk_rules_unit_targets` FOREIGN KEY (`rule_id`) REFERENCES `rules` (`id`) ON UPDATE NO ACTION ON DELETE CASCADE |
87 | 139 | ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
88 | | --- Create "tags" table |
89 | | -CREATE TABLE `tags` ( |
90 | | - `id` varchar(36) NOT NULL, |
91 | | - `org_id` varchar(36) NULL, |
92 | | - `name` varchar(255) NOT NULL, |
93 | | - PRIMARY KEY (`id`), |
94 | | - INDEX `idx_tags_name` (`name`), |
95 | | - INDEX `idx_tags_org_id` (`org_id`) |
96 | | -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
97 | | --- Create "units" table |
98 | | -CREATE TABLE `units` ( |
99 | | - `id` varchar(36) NOT NULL, |
100 | | - `org_id` varchar(36) NULL, |
101 | | - `name` varchar(255) NOT NULL, |
102 | | - `size` bigint NULL DEFAULT 0, |
103 | | - `updated_at` datetime(3) NULL, |
104 | | - `locked` bool NULL DEFAULT 0, |
105 | | - `lock_id` varchar(191) NULL DEFAULT "", |
106 | | - `lock_who` varchar(191) NULL DEFAULT "", |
107 | | - `lock_created` datetime(3) NULL, |
108 | | - PRIMARY KEY (`id`), |
109 | | - INDEX `idx_units_name` (`name`), |
110 | | - INDEX `idx_units_org_id` (`org_id`) |
111 | | -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
112 | | --- Create "unit_tags" table |
113 | | -CREATE TABLE `unit_tags` ( |
114 | | - `unit_id` varchar(36) NOT NULL, |
115 | | - `tag_id` varchar(36) NOT NULL, |
116 | | - PRIMARY KEY (`unit_id`, `tag_id`), |
117 | | - INDEX `idx_unit_tags_tag_id` (`tag_id`), |
118 | | - INDEX `idx_unit_tags_unit_id` (`unit_id`), |
119 | | - CONSTRAINT `fk_unit_tags_tag` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, |
120 | | - CONSTRAINT `fk_unit_tags_unit` FOREIGN KEY (`unit_id`) REFERENCES `units` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
121 | | -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
122 | | --- Create "users" table |
123 | | -CREATE TABLE `users` ( |
124 | | - `id` varchar(36) NOT NULL, |
125 | | - `subject` varchar(255) NOT NULL, |
126 | | - `email` varchar(255) NOT NULL, |
127 | | - `created_at` datetime(3) NULL, |
128 | | - `updated_at` datetime(3) NULL, |
129 | | - `version` bigint NULL, |
130 | | - PRIMARY KEY (`id`), |
131 | | - UNIQUE INDEX `idx_users_email` (`email`), |
132 | | - UNIQUE INDEX `idx_users_subject` (`subject`) |
133 | | -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
134 | | --- Create "user_roles" table |
135 | | -CREATE TABLE `user_roles` ( |
136 | | - `user_id` varchar(36) NOT NULL, |
137 | | - `role_id` varchar(36) NOT NULL, |
138 | | - `org_id` varchar(36) NOT NULL, |
139 | | - PRIMARY KEY (`user_id`, `role_id`, `org_id`), |
140 | | - INDEX `idx_user_roles_org_id` (`org_id`), |
141 | | - INDEX `idx_user_roles_role_id` (`role_id`), |
142 | | - INDEX `idx_user_roles_user_id` (`user_id`), |
143 | | - CONSTRAINT `fk_user_roles_role` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, |
144 | | - CONSTRAINT `fk_user_roles_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
145 | | -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; |
0 commit comments