From a5406286fe6666e68c37b5455952e2b838ea8790 Mon Sep 17 00:00:00 2001 From: elweyn Date: Sat, 4 Dec 2021 11:43:00 +0100 Subject: [PATCH] change logic need a if exists or if not exists to up and downgrade easily. --- database/migrations/0002-add_settings.ts | 4 +- .../migrations/0003-login_server_tables.ts | 40 +++++++++---------- database/migrations/0004-login_server_data.ts | 14 +------ database/migrations/0005-admin_tables.ts | 4 +- 4 files changed, 25 insertions(+), 37 deletions(-) diff --git a/database/migrations/0002-add_settings.ts b/database/migrations/0002-add_settings.ts index 1b3b8a1a4..5c1b4fbe7 100644 --- a/database/migrations/0002-add_settings.ts +++ b/database/migrations/0002-add_settings.ts @@ -14,7 +14,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` - CREATE TABLE \`user_setting\` ( + CREATE TABLE IF NOT EXISTS \`user_setting\` ( \`id\` int(10) unsigned NOT NULL AUTO_INCREMENT, \`userId\` int(11) NOT NULL, \`key\` varchar(255) NOT NULL, @@ -25,5 +25,5 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn - await queryFn(`DROP TABLE \`user_setting\`;`) + await queryFn(`DROP TABLE IF EXISTS \`user_setting\`;`) } diff --git a/database/migrations/0003-login_server_tables.ts b/database/migrations/0003-login_server_tables.ts index 54e7bca54..d3d720c97 100644 --- a/database/migrations/0003-login_server_tables.ts +++ b/database/migrations/0003-login_server_tables.ts @@ -14,7 +14,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` - CREATE TABLE \`login_app_access_tokens\` ( + CREATE TABLE IF NOT EXISTS \`login_app_access_tokens\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`user_id\` int NOT NULL, \`access_code\` bigint unsigned NOT NULL, @@ -25,7 +25,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_elopage_buys\` ( + CREATE TABLE IF NOT EXISTS \`login_elopage_buys\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`elopage_user_id\` int DEFAULT NULL, \`affiliate_program_id\` int NOT NULL, @@ -42,7 +42,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_email_opt_in_types\` ( + CREATE TABLE IF NOT EXISTS \`login_email_opt_in_types\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`name\` varchar(255) NOT NULL, \`description\` varchar(255) NOT NULL, @@ -50,7 +50,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_email_opt_in\` ( + CREATE TABLE IF NOT EXISTS \`login_email_opt_in\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`user_id\` int NOT NULL, \`verification_code\` bigint unsigned NOT NULL, @@ -63,7 +63,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_groups\` ( + CREATE TABLE IF NOT EXISTS \`login_groups\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`alias\` varchar(190) NOT NULL, \`name\` varchar(255) NOT NULL, @@ -76,7 +76,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_pending_tasks\` ( + CREATE TABLE IF NOT EXISTS \`login_pending_tasks\` ( \`id\` int UNSIGNED NOT NULL AUTO_INCREMENT, \`user_id\` int UNSIGNED DEFAULT 0, \`request\` varbinary(2048) NOT NULL, @@ -91,7 +91,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_roles\` ( + CREATE TABLE IF NOT EXISTS \`login_roles\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`name\` varchar(255) NOT NULL, \`description\` varchar(255) NOT NULL, @@ -100,7 +100,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_user_backups\` ( + CREATE TABLE IF NOT EXISTS \`login_user_backups\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`user_id\` int NOT NULL, \`passphrase\` text NOT NULL, @@ -109,7 +109,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_user_roles\` ( + CREATE TABLE IF NOT EXISTS \`login_user_roles\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`user_id\` int NOT NULL, \`role_id\` int NOT NULL, @@ -117,7 +117,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; `) await queryFn(` - CREATE TABLE \`login_users\` ( + CREATE TABLE IF NOT EXISTS \`login_users\` ( \`id\` int unsigned NOT NULL AUTO_INCREMENT, \`email\` varchar(191) NOT NULL, \`first_name\` varchar(150) NOT NULL, @@ -143,14 +143,14 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn - await queryFn(`DROP TABLE \`login_app_access_tokens\`;`) - await queryFn(`DROP TABLE \`login_elopage_buys\`;`) - await queryFn(`DROP TABLE \`login_email_opt_in_types\`;`) - await queryFn(`DROP TABLE \`login_email_opt_in\`;`) - await queryFn(`DROP TABLE \`login_groups\`;`) - await queryFn(`DROP TABLE \`login_pending_tasks\`;`) - await queryFn(`DROP TABLE \`login_roles\`;`) - await queryFn(`DROP TABLE \`login_user_backups\`;`) - await queryFn(`DROP TABLE \`login_user_roles\`;`) - await queryFn(`DROP TABLE \`login_users\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_app_access_tokens\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_elopage_buys\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_email_opt_in_types\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_email_opt_in\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_groups\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_pending_tasks\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_roles\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_user_backups\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_user_roles\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_users\`;`) } diff --git a/database/migrations/0004-login_server_data.ts b/database/migrations/0004-login_server_data.ts index f319b16ab..b69283ad7 100644 --- a/database/migrations/0004-login_server_data.ts +++ b/database/migrations/0004-login_server_data.ts @@ -62,16 +62,4 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis `) } -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { - // write downgrade logic as parameter of queryFn - await queryFn(`DELETE FROM \`login_app_access_tokens\`;`) - await queryFn(`DELETE FROM \`login_elopage_buys\`;`) - await queryFn(`DELETE FROM \`login_email_opt_in_types\`;`) - await queryFn(`DELETE FROM \`login_email_opt_in\`;`) - await queryFn(`DELETE FROM \`login_groups\`;`) - await queryFn(`DELETE FROM \`login_pending_tasks\`;`) - await queryFn(`DELETE FROM \`login_roles\`;`) - await queryFn(`DELETE FROM \`login_user_backups\`;`) - await queryFn(`DELETE FROM \`login_user_roles\`;`) - await queryFn(`DELETE FROM \`login_users\`;`) -} +export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) {} diff --git a/database/migrations/0005-admin_tables.ts b/database/migrations/0005-admin_tables.ts index 6398b22fc..bd325678f 100644 --- a/database/migrations/0005-admin_tables.ts +++ b/database/migrations/0005-admin_tables.ts @@ -11,7 +11,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` - CREATE TABLE \`login_pending_tasks_admin\` ( + CREATE TABLE IF NOT EXISTS \`login_pending_tasks_admin\` ( \`id\` int UNSIGNED NOT NULL AUTO_INCREMENT, \`userId\` int UNSIGNED DEFAULT 0, \`created\` datetime NOT NULL, @@ -25,5 +25,5 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis } export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(`DROP TABLE \`login_pending_tasks_admin\`;`) + await queryFn(`DROP TABLE IF EXISTS \`login_pending_tasks_admin\`;`) }