47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
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<void> {
|
|
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<string> }>((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<void> {
|
|
await queryRunner.dropColumn("member", "internalId");
|
|
}
|
|
}
|