diff --git a/migrations/1713883053900-addSuperFluidParentToAllUsers.ts b/migrations/1713883053900-addSuperFluidParentToAllUsers.ts new file mode 100644 index 0000000..e9d7319 --- /dev/null +++ b/migrations/1713883053900-addSuperFluidParentToAllUsers.ts @@ -0,0 +1,40 @@ +import { MigrationInterface, QueryRunner } from "typeorm" + +export class addSuperFluidParentToAllUsers1713883053900 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + // Fetch the notificationTypeIds for the "superfluid" parent + const notificationTypeId = (await queryRunner.query(` + SELECT "id" FROM "notification_type" WHERE "categoryGroup" = 'superfluid' AND "isGroupParent" = true; + `)).map((i: any) => i.id)[0]; + + // Fetch all unique userAddressIds + const userAddressIds = await queryRunner.query(` + SELECT "id" FROM "user_address"; + `); + + // For each userAddressId, insert a new row + for (const { id } of userAddressIds) { + await queryRunner.query(` + INSERT INTO "notification_setting" ( + "allowNotifications", + "allowEmailNotification", + "allowDappPushNotification", + "notificationTypeId", + "userAddressId" + ) VALUES (true, true, true, ${notificationTypeId}, ${id}); + `); + } + } + + public async down(queryRunner: QueryRunner): Promise { + // Fetch the notificationTypeIds for the "superfluid" categoryGroup + const notificationTypeId = await queryRunner.query(` + SELECT "id" FROM "notification_type" WHERE "categoryGroup" = 'superfluid' AND "isGroupParent" = true; + `); + const id = notificationTypeId.map((nt: { id: number; }) => nt.id)[0] + // Delete the rows with the fetched notificationTypeId for all userAddressIds + await queryRunner.query(` + DELETE FROM "notification_setting" WHERE "notificationTypeId" = ${id}; + `); + } +} diff --git a/package.json b/package.json index 1043198..6f591da 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "prettify": "prettier --write '**/*.ts*'", - "db:migrate:run:local": "NODE_ENV=development npx typeorm-ts-node-esm migration:run -d ./src/dataSource.ts ", + "db:migrate:run:local": "NODE_ENV=development npx typeorm-ts-node-commonjs migration:run -d ./src/dataSource.ts ", "db:migrate:run:staging": "NODE_ENV=staging npx typeorm-ts-node-esm migration:run -d ./src/dataSource.ts ", "db:migrate:revert:local": "NODE_ENV=development npx typeorm-ts-node-esm migration:revert -d ./src/dataSource.ts ", "db:migrate:run:test": "NODE_ENV=test npx typeorm-ts-node-esm migration:run -d ./src/dataSource.ts ",