wrapping up: membership id transfer

This commit is contained in:
Julian Krauser 2025-01-10 12:06:24 +01:00
parent c173f917e3
commit 632a8290ac
4 changed files with 45 additions and 26 deletions

View file

@ -66,6 +66,7 @@ import { PostalCode1735927918979 } from "./migrations/1735927918979-postalCode";
import { ProtocolAbsent1736072179716 } from "./migrations/1736072179716-protocolAbsent";
import { Memberlist1736079005086 } from "./migrations/1736079005086-memberlist";
import { ExtendViewValues1736084198860 } from "./migrations/1736084198860-extendViewValues";
import { FinishInternalIdTransfer1736505324488 } from "./migrations/1736505324488-finishInternalIdTransfer";
const dataSource = new DataSource({
type: DB_TYPE as any,
@ -142,6 +143,7 @@ const dataSource = new DataSource({
ProtocolAbsent1736072179716,
Memberlist1736079005086,
ExtendViewValues1736084198860,
FinishInternalIdTransfer1736505324488,
],
migrationsRun: true,
migrationsTransactionMode: "each",

View file

@ -7,12 +7,6 @@ export class membership {
@PrimaryColumn({ generated: "increment", type: "int" })
id: number;
/**
* @deprecated
*/
@Column({ type: "varchar", length: 255, unique: true, nullable: true })
internalId?: string;
@Column({ type: "date" })
start: Date;

View file

@ -18,27 +18,27 @@ export class InternalId1735822722235 implements MigrationInterface {
})
);
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;
}, {});
// 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);
}
}
// 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> {

View file

@ -0,0 +1,23 @@
import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";
export class FinishInternalIdTransfer1736505324488 implements MigrationInterface {
name = "FinishInternalIdTransfer1736505324488";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropColumn("membership", "internalId");
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.addColumn(
"membership",
new TableColumn({
name: "internalId",
type: "varchar",
length: "255",
default: null,
isNullable: true,
isUnique: true,
})
);
}
}