internal Id to member
This commit is contained in:
parent
cfefcd81d7
commit
0d2c7dd7f1
17 changed files with 101 additions and 20 deletions
47
src/migrations/1735822722235-internalId.ts
Normal file
47
src/migrations/1735822722235-internalId.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";
|
||||
import { membership } from "../entity/membership";
|
||||
import { member } from "../entity/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");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue