@fdm-monster/server
Version:
FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.
97 lines (96 loc) • 2.79 kB
JavaScript
//#region src/migrations/1713300747465-ChangeRoleNameUnique.ts
var ChangeRoleNameUnique1713300747465 = class {
name = "ChangeRoleNameUnique1713300747465";
async up(queryRunner) {
await queryRunner.query(`
DELETE FROM role
WHERE ID NOT IN (
SELECT MIN(ID)
FROM role
GROUP BY name
);
`);
await queryRunner.query(`
CREATE TABLE "temporary_role" (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar NOT NULL
)
`);
await queryRunner.query(`
INSERT INTO "temporary_role"("id", "name")
SELECT "id",
"name"
FROM "role"
`);
await queryRunner.query(`
DROP TABLE "role"
`);
await queryRunner.query(`
ALTER TABLE "temporary_role"
RENAME TO "role"
`);
await queryRunner.query(`
CREATE TABLE "temporary_role" (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar NOT NULL,
CONSTRAINT "UQ_d430b72bf1eaebce7f87068a431" UNIQUE ("name")
)
`);
await queryRunner.query(`
INSERT INTO "temporary_role"("id", "name")
SELECT "id",
"name"
FROM "role"
`);
await queryRunner.query(`
DROP TABLE "role"
`);
await queryRunner.query(`
ALTER TABLE "temporary_role"
RENAME TO "role"
`);
}
async down(queryRunner) {
await queryRunner.query(`
ALTER TABLE "role"
RENAME TO "temporary_role"
`);
await queryRunner.query(`
CREATE TABLE "role" (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar NOT NULL
)
`);
await queryRunner.query(`
INSERT INTO "role"("id", "name")
SELECT "id",
"name"
FROM "temporary_role"
`);
await queryRunner.query(`
DROP TABLE "temporary_role"
`);
await queryRunner.query(`
ALTER TABLE "role"
RENAME TO "temporary_role"
`);
await queryRunner.query(`
CREATE TABLE "role" (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar NOT NULL
)
`);
await queryRunner.query(`
INSERT INTO "role"("id", "name")
SELECT "id",
"name"
FROM "temporary_role"
`);
await queryRunner.query(`
DROP TABLE "temporary_role"
`);
}
};
//#endregion
export { ChangeRoleNameUnique1713300747465 };
//# sourceMappingURL=1713300747465-ChangeRoleNameUnique.js.map