import { MigrationInterface, QueryRunner, TableColumn } from "typeorm"; import { membership } from "../entity/club/member/membership"; import { member } from "../entity/club/member/member"; export class InternalId1735822722235 implements MigrationInterface { name = "InternalId1735822722235"; public async up(queryRunner: QueryRunner): Promise { await queryRunner.addColumn( "member", new TableColumn({ name: "internalId", type: "varchar", length: "255", default: null, isNullable: true, isUnique: true, }) ); // let memberships = await queryRunner.manager.getRepository(membership).find(); // console.log(memberships); // let internalIds = memberships.reduce<{ [key: number]: Array }>((acc, cur) => { // let memberId = cur.memberId; // let setIds = acc[memberId] ?? []; // if (cur?.internalId) { // setIds.push(cur.internalId); // } // acc[memberId] = setIds; // return acc; // }, {}); // console.log(internalIds); // for (const [id, value] of Object.entries(internalIds)) { // const ids = value.filter((v) => v != null).join(", "); // if (ids) { // let m = await queryRunner.manager.getRepository(member).findOneByOrFail({ id: parseInt(id) }); // m.internalId = ids; // await queryRunner.manager.getRepository(member).save(m); // } // } } public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropColumn("member", "internalId"); } }