From a156c7bc625a7e63426a68ed51762d028ee35aec Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Tue, 31 Jan 2023 23:33:07 +0100 Subject: Rename postgresql to postgres -> fix silently failing migrations Signed-off-by: TheArcaneBrony --- .../1673609867556-templateDeleteCascade.ts | 41 ++++++++++++++++++++++ .../migration/postgres/1675044825710-webauthn.ts | 27 ++++++++++++++ .../1673609867556-templateDeleteCascade.ts | 41 ---------------------- .../migration/postgresql/1675044825710-webauthn.ts | 27 -------------- src/util/util/Database.ts | 6 ++-- 5 files changed, 72 insertions(+), 70 deletions(-) create mode 100644 src/util/migration/postgres/1673609867556-templateDeleteCascade.ts create mode 100644 src/util/migration/postgres/1675044825710-webauthn.ts delete mode 100644 src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts delete mode 100644 src/util/migration/postgresql/1675044825710-webauthn.ts diff --git a/src/util/migration/postgres/1673609867556-templateDeleteCascade.ts b/src/util/migration/postgres/1673609867556-templateDeleteCascade.ts new file mode 100644 index 00000000..41979e59 --- /dev/null +++ b/src/util/migration/postgres/1673609867556-templateDeleteCascade.ts @@ -0,0 +1,41 @@ +/* + Fosscord: A FOSS re-implementation and extension of the Discord.com backend. + Copyright (C) 2023 Fosscord and Fosscord Contributors + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class templateDeleteCascade1673609867556 implements MigrationInterface { + name = "templateDeleteCascade1673609867556"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, + ); + await queryRunner.query( + `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, + ); + await queryRunner.query( + `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, + ); + } +} diff --git a/src/util/migration/postgres/1675044825710-webauthn.ts b/src/util/migration/postgres/1675044825710-webauthn.ts new file mode 100644 index 00000000..ac43c928 --- /dev/null +++ b/src/util/migration/postgres/1675044825710-webauthn.ts @@ -0,0 +1,27 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class webauthn1675044825710 implements MigrationInterface { + name = "webauthn1675044825710"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TABLE "security_keys" ("id" character varying NOT NULL, "user_id" character varying, "key_id" character varying NOT NULL, "public_key" character varying NOT NULL, "counter" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_6e95cdd91779e7cca06d1fff89c" PRIMARY KEY ("id"))`, + ); + await queryRunner.query( + `ALTER TABLE "users" ADD "webauthn_enabled" boolean NOT NULL DEFAULT false`, + ); + await queryRunner.query( + `ALTER TABLE "security_keys" ADD CONSTRAINT "FK_24c97d0771cafedce6d7163eaad" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "security_keys" DROP CONSTRAINT "FK_24c97d0771cafedce6d7163eaad"`, + ); + await queryRunner.query( + `ALTER TABLE "users" DROP COLUMN "webauthn_enabled"`, + ); + await queryRunner.query(`DROP TABLE "security_keys"`); + } +} diff --git a/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts b/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts deleted file mode 100644 index 41979e59..00000000 --- a/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - Fosscord: A FOSS re-implementation and extension of the Discord.com backend. - Copyright (C) 2023 Fosscord and Fosscord Contributors - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class templateDeleteCascade1673609867556 implements MigrationInterface { - name = "templateDeleteCascade1673609867556"; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, - ); - await queryRunner.query( - `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, - ); - await queryRunner.query( - `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, - ); - } -} diff --git a/src/util/migration/postgresql/1675044825710-webauthn.ts b/src/util/migration/postgresql/1675044825710-webauthn.ts deleted file mode 100644 index ac43c928..00000000 --- a/src/util/migration/postgresql/1675044825710-webauthn.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class webauthn1675044825710 implements MigrationInterface { - name = "webauthn1675044825710"; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `CREATE TABLE "security_keys" ("id" character varying NOT NULL, "user_id" character varying, "key_id" character varying NOT NULL, "public_key" character varying NOT NULL, "counter" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_6e95cdd91779e7cca06d1fff89c" PRIMARY KEY ("id"))`, - ); - await queryRunner.query( - `ALTER TABLE "users" ADD "webauthn_enabled" boolean NOT NULL DEFAULT false`, - ); - await queryRunner.query( - `ALTER TABLE "security_keys" ADD CONSTRAINT "FK_24c97d0771cafedce6d7163eaad" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `ALTER TABLE "security_keys" DROP CONSTRAINT "FK_24c97d0771cafedce6d7163eaad"`, - ); - await queryRunner.query( - `ALTER TABLE "users" DROP COLUMN "webauthn_enabled"`, - ); - await queryRunner.query(`DROP TABLE "security_keys"`); - } -} diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts index 31dfa710..492fb4e4 100644 --- a/src/util/util/Database.ts +++ b/src/util/util/Database.ts @@ -36,7 +36,7 @@ const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db"); const DatabaseType = dbConnectionString.includes("://") - ? dbConnectionString.split(":")[0]?.replace("+srv", "")?.replace("postgres", "postgresql") + ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite"; const isSqlite = DatabaseType.includes("sqlite"); @@ -103,7 +103,9 @@ export async function initDatabase(): Promise { } }; if (!(await dbExists())) { - console.log("[Database] This appears to be a fresh database. Synchronising."); + console.log( + "[Database] This appears to be a fresh database. Synchronising.", + ); await dbConnection.synchronize(); } else { console.log("[Database] Applying missing migrations, if any."); -- cgit 1.4.1