@@ -175,23 +175,46 @@ CREATE TABLE `app_id_to_user_id` (
175
175
` app_id` varchar(64) NOT NULL DEFAULT 'public',
176
176
` user_id` char(36) NOT NULL,
177
177
` recipe_id` varchar(128) NOT NULL,
178
+ ` primary_or_recipe_user_id` char(36) NOT NULL,
179
+ ` is_linked_or_is_a_primary_user` BOOLEAN NOT NULL DEFAULT FALSE,
178
180
PRIMARY KEY (`app_id`,`user_id`),
179
- CONSTRAINT `app_id_to_user_id_ibfk_1` FOREIGN KEY (`app_id`) REFERENCES `apps` (`app_id`) ON DELETE CASCADE
181
+ FOREIGN KEY (`app_id`) REFERENCES `apps` (`app_id`) ON DELETE CASCADE,
182
+ FOREIGN KEY (`app_id`, `primary_or_recipe_user_id`) REFERENCES `app_id_to_user_id` (`app_id`, `user_id`) ON DELETE CASCADE
180
183
);
181
184
182
185
CREATE TABLE `all_auth_recipe_users` (
183
186
` app_id` varchar(64) NOT NULL DEFAULT 'public',
184
187
` tenant_id` varchar(64) NOT NULL DEFAULT 'public',
185
188
` user_id` char(36) NOT NULL,
189
+ ` primary_or_recipe_user_id` char(36) NOT NULL,
190
+ ` is_linked_or_is_a_primary_user` BOOLEAN NOT NULL DEFAULT FALSE,
186
191
` recipe_id` varchar(128) NOT NULL,
187
192
` time_joined` bigint unsigned NOT NULL,
193
+ ` primary_or_recipe_user_time_joined` bigint unsigned NOT NULL,
188
194
PRIMARY KEY (`app_id`,`tenant_id`,`user_id`),
189
195
KEY `app_id` (`app_id`,`user_id`),
190
196
FOREIGN KEY (`app_id`, `tenant_id`) REFERENCES `tenants` (`app_id`, `tenant_id`) ON DELETE CASCADE,
191
- FOREIGN KEY (`app_id`, `user_id`) REFERENCES `app_id_to_user_id` (`app_id`, `user_id`) ON DELETE CASCADE
197
+ FOREIGN KEY (`app_id`, `user_id`) REFERENCES `app_id_to_user_id` (`app_id`, `user_id`) ON DELETE CASCADE,
198
+ FOREIGN KEY (`app_id`, `primary_or_recipe_user_id`) REFERENCES `app_id_to_user_id` (`app_id`, `user_id`) ON DELETE CASCADE
192
199
);
193
200
194
- CREATE INDEX `all_auth_recipe_users_pagination_index` ON `all_auth_recipe_users` (`time_joined` DESC,`user_id` DESC,`tenant_id` DESC,`app_id` DESC);
201
+ CREATE INDEX all_auth_recipe_users_pagination_index1 ON all_auth_recipe_users
202
+ (app_id, tenant_id, primary_or_recipe_user_time_joined DESC, primary_or_recipe_user_id DESC);
203
+
204
+ CREATE INDEX all_auth_recipe_users_pagination_index2 ON all_auth_recipe_users
205
+ (app_id, tenant_id, primary_or_recipe_user_time_joined ASC, primary_or_recipe_user_id DESC);
206
+
207
+ CREATE INDEX all_auth_recipe_users_pagination_index3 ON all_auth_recipe_users
208
+ (recipe_id, app_id, tenant_id, primary_or_recipe_user_time_joined DESC, primary_or_recipe_user_id DESC);
209
+
210
+ CREATE INDEX all_auth_recipe_users_pagination_index4 ON all_auth_recipe_users
211
+ (recipe_id, app_id, tenant_id, primary_or_recipe_user_time_joined ASC, primary_or_recipe_user_id DESC);
212
+
213
+ CREATE INDEX all_auth_recipe_users_primary_user_id_index ON all_auth_recipe_users
214
+ (primary_or_recipe_user_id, app_id);
215
+
216
+ CREATE INDEX all_auth_recipe_users_recipe_id_index ON all_auth_recipe_users
217
+ (app_id, recipe_id, tenant_id);
195
218
196
219
CREATE TABLE `userid_mapping` (
197
220
` app_id` varchar(64) NOT NULL DEFAULT 'public',
@@ -286,9 +309,10 @@ CREATE TABLE `emailpassword_pswd_reset_tokens` (
286
309
` user_id` char(36) NOT NULL,
287
310
` token` varchar(128) NOT NULL,
288
311
` token_expiry` bigint unsigned NOT NULL,
312
+ ` email` varchar(256),
289
313
PRIMARY KEY (`app_id`,`user_id`,`token`),
290
314
UNIQUE KEY `token` (`token`),
291
- FOREIGN KEY (`app_id`, `user_id`) REFERENCES `emailpassword_users ` (`app_id`, `user_id`) ON DELETE CASCADE ON UPDATE CASCADE
315
+ FOREIGN KEY (`app_id`, `user_id`) REFERENCES `app_id_to_user_id ` (`app_id`, `user_id`) ON DELETE CASCADE ON UPDATE CASCADE
292
316
);
293
317
294
318
CREATE INDEX `emailpassword_password_reset_token_expiry_index` ON `emailpassword_pswd_reset_tokens` (`token_expiry`);
0 commit comments