member tables
This commit is contained in:
parent
75fb556796
commit
10db9a40f4
14 changed files with 483 additions and 26 deletions
258
src/migrations/1726301836849-memberdata.ts
Normal file
258
src/migrations/1726301836849-memberdata.ts
Normal file
|
@ -0,0 +1,258 @@
|
|||
import { MigrationInterface, QueryRunner, Table, TableColumn, TableForeignKey } from "typeorm";
|
||||
|
||||
export class Memberdata1726301836849 implements MigrationInterface {
|
||||
name = "Memberdata1726301836849";
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.createTable(
|
||||
new Table({
|
||||
name: "membership",
|
||||
columns: [
|
||||
{ name: "id", type: "int", isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||||
{ name: "internalId", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "start", type: "date", isNullable: false },
|
||||
{ name: "end", type: "date", isNullable: true },
|
||||
{ name: "terminationReason", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "memberId", type: "int", isNullable: false },
|
||||
{ name: "statusId", type: "int", isNullable: false },
|
||||
],
|
||||
uniques: [{ name: "IDX_703f499fe3a9892e3a8790cdfc", columnNames: ["internalId"] }],
|
||||
}),
|
||||
true
|
||||
);
|
||||
|
||||
await queryRunner.createTable(
|
||||
new Table({
|
||||
name: "member_qualifications",
|
||||
columns: [
|
||||
{ name: "id", type: "int", isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||||
{ name: "note", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "start", type: "date", isNullable: false },
|
||||
{ name: "end", type: "date", isNullable: true },
|
||||
{ name: "terminationReason", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "memberId", type: "int", isNullable: false },
|
||||
{ name: "qualificationId", type: "int", isNullable: false },
|
||||
],
|
||||
}),
|
||||
true
|
||||
);
|
||||
|
||||
await queryRunner.createTable(
|
||||
new Table({
|
||||
name: "member_executive_positions",
|
||||
columns: [
|
||||
{ name: "id", type: "int", isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||||
{ name: "note", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "start", type: "date", isNullable: false },
|
||||
{ name: "end", type: "date", isNullable: true },
|
||||
{ name: "memberId", type: "int", isNullable: false },
|
||||
{ name: "executivePositionId", type: "int", isNullable: false },
|
||||
],
|
||||
}),
|
||||
true
|
||||
);
|
||||
|
||||
await queryRunner.createTable(
|
||||
new Table({
|
||||
name: "member",
|
||||
columns: [
|
||||
{ name: "id", type: "int", isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||||
{
|
||||
name: "salutation",
|
||||
type: "enum",
|
||||
enum: ["sir", "madam", "other", "none"],
|
||||
default: "'none'",
|
||||
isNullable: false,
|
||||
},
|
||||
{ name: "firstname", type: "varchar", length: "255", isNullable: false },
|
||||
{ name: "lastname", type: "varchar", length: "255", isNullable: false },
|
||||
{ name: "nameaffix", type: "varchar", length: "255", isNullable: false },
|
||||
{ name: "birthdate", type: "date", isNullable: false },
|
||||
{ name: "sendNewsletterId", type: "int", isNullable: true },
|
||||
],
|
||||
uniques: [{ name: "REL_d57e160c4513cd949159217281", columnNames: ["sendNewsletterId"] }],
|
||||
}),
|
||||
true
|
||||
);
|
||||
|
||||
await queryRunner.createTable(
|
||||
new Table({
|
||||
name: "member_awards",
|
||||
columns: [
|
||||
{ name: "id", type: "int", isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||||
{ name: "given", type: "tinyint", default: 1, isNullable: false },
|
||||
{ name: "note", type: "varchar", length: "255", isNullable: true },
|
||||
{ name: "date", type: "date", isNullable: false },
|
||||
{ name: "memberId", type: "int", isNullable: false },
|
||||
{ name: "awardId", type: "int", isNullable: false },
|
||||
],
|
||||
}),
|
||||
true
|
||||
);
|
||||
|
||||
await queryRunner.addColumn("communication", new TableColumn({ name: "memberId", type: "int", isNullable: false }));
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"membership",
|
||||
new TableForeignKey({
|
||||
columnNames: ["memberId"],
|
||||
referencedTableName: "member",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"membership",
|
||||
new TableForeignKey({
|
||||
columnNames: ["statusId"],
|
||||
referencedTableName: "membership_status",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_qualifications",
|
||||
new TableForeignKey({
|
||||
columnNames: ["memberId"],
|
||||
referencedTableName: "member",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_qualifications",
|
||||
new TableForeignKey({
|
||||
columnNames: ["qualificationId"],
|
||||
referencedTableName: "qualification",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_executive_positions",
|
||||
new TableForeignKey({
|
||||
columnNames: ["memberId"],
|
||||
referencedTableName: "member",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_executive_positions",
|
||||
new TableForeignKey({
|
||||
columnNames: ["executivePositionId"],
|
||||
referencedTableName: "executive_position",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"communication",
|
||||
new TableForeignKey({
|
||||
columnNames: ["memberId"],
|
||||
referencedTableName: "member",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member",
|
||||
new TableForeignKey({
|
||||
columnNames: ["sendNewsletterId"],
|
||||
referencedTableName: "communication",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "SET NULL",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_awards",
|
||||
new TableForeignKey({
|
||||
columnNames: ["memberId"],
|
||||
referencedTableName: "member",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
|
||||
await queryRunner.createForeignKey(
|
||||
"member_awards",
|
||||
new TableForeignKey({
|
||||
columnNames: ["awardId"],
|
||||
referencedTableName: "award",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
const member = await queryRunner.getTable("member");
|
||||
const memeberForeignKey = member.foreignKeys.find((fk) => fk.columnNames.indexOf("sendNewsletterId") !== -1);
|
||||
await queryRunner.dropForeignKey("member", memeberForeignKey);
|
||||
|
||||
const member_awards = await queryRunner.getTable("member_awards");
|
||||
const memeberAwardsForeignKeyMember = member_awards.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("memberId") !== -1
|
||||
);
|
||||
const memeberAwardsForeignKeyAward = member_awards.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("awardId") !== -1
|
||||
);
|
||||
await queryRunner.dropForeignKey("member_awards", memeberAwardsForeignKeyMember);
|
||||
await queryRunner.dropForeignKey("member_awards", memeberAwardsForeignKeyAward);
|
||||
|
||||
const communication = await queryRunner.getTable("communication");
|
||||
const communicationForeignKey = communication.foreignKeys.find((fk) => fk.columnNames.indexOf("memberId") !== -1);
|
||||
await queryRunner.dropForeignKey("communication", communicationForeignKey);
|
||||
|
||||
const member_executive_positions = await queryRunner.getTable("member_executive_positions");
|
||||
const memeberExecutivePositionForeignKeyMember = member_executive_positions.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("memberId") !== -1
|
||||
);
|
||||
const memeberExecutivePositionForeignKeyPosition = member_executive_positions.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("executivePositionId") !== -1
|
||||
);
|
||||
await queryRunner.dropForeignKey("member_executive_positions", memeberExecutivePositionForeignKeyMember);
|
||||
await queryRunner.dropForeignKey("member_executive_positions", memeberExecutivePositionForeignKeyPosition);
|
||||
|
||||
const member_qualifications = await queryRunner.getTable("member_qualifications");
|
||||
const memeberQualificationForeignKeyMember = member_qualifications.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("memberId") !== -1
|
||||
);
|
||||
const memeberQualificationForeignKeyQualification = member_qualifications.foreignKeys.find(
|
||||
(fk) => fk.columnNames.indexOf("qualificationId") !== -1
|
||||
);
|
||||
await queryRunner.dropForeignKey("member_qualifications", memeberQualificationForeignKeyMember);
|
||||
await queryRunner.dropForeignKey("member_qualifications", memeberQualificationForeignKeyQualification);
|
||||
|
||||
const membership = await queryRunner.getTable("membership");
|
||||
const membershipForeignKeyMember = membership.foreignKeys.find((fk) => fk.columnNames.indexOf("memberId") !== -1);
|
||||
const membershipForeignKeyStatus = membership.foreignKeys.find((fk) => fk.columnNames.indexOf("statusId") !== -1);
|
||||
await queryRunner.dropForeignKey("membership", membershipForeignKeyMember);
|
||||
await queryRunner.dropForeignKey("membership", membershipForeignKeyStatus);
|
||||
|
||||
await queryRunner.dropColumn("communication", "memberId");
|
||||
await queryRunner.dropTable("member_awards");
|
||||
await queryRunner.dropTable("member");
|
||||
await queryRunner.dropTable("member_executive_positions");
|
||||
await queryRunner.dropTable("member_qualifications");
|
||||
await queryRunner.dropTable("membership");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue