2024-09-04 09:36:52 +00:00
|
|
|
import { MigrationInterface, QueryRunner, Table, TableForeignKey } from "typeorm";
|
2024-09-16 05:24:41 +00:00
|
|
|
import { DB_TYPE } from "../env.defaults";
|
2024-09-04 09:36:52 +00:00
|
|
|
|
|
|
|
export class MemberBaseData1725435669492 implements MigrationInterface {
|
|
|
|
name = "MemberBaseData1725435669492";
|
|
|
|
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
2024-09-16 05:24:41 +00:00
|
|
|
const variableType_int = DB_TYPE == "mysql" ? "int" : "integer";
|
|
|
|
|
2024-09-04 09:36:52 +00:00
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "award",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "award", type: "varchar", length: "255", isNullable: false },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "communication_type",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "type", type: "varchar", length: "255", isNullable: false },
|
|
|
|
{ name: "useColumns", type: "varchar", length: "255", isNullable: false, default: "''" },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "communication",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
|
|
|
{ name: "preferred", type: "tinyint", isNullable: false, default: 0 },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "mobile", type: "varchar", length: "255", isNullable: false },
|
|
|
|
{ name: "email", type: "varchar", length: "255", isNullable: false },
|
|
|
|
{ name: "city", type: "varchar", length: "255", isNullable: false },
|
|
|
|
{ name: "street", type: "varchar", length: "255", isNullable: false },
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "streetNumber", type: variableType_int, isNullable: false },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "streetNumberAddition", type: "varchar", length: "255", isNullable: false },
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "typeId", type: variableType_int, isNullable: false },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "executive_position",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "position", type: "varchar", length: "255", isNullable: false },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "membership_status",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "status", type: "varchar", length: "255", isNullable: false },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createTable(
|
|
|
|
new Table({
|
|
|
|
name: "qualification",
|
|
|
|
columns: [
|
2024-09-16 05:24:41 +00:00
|
|
|
{ name: "id", type: variableType_int, isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
2024-09-14 09:33:13 +00:00
|
|
|
{ name: "qualification", type: "varchar", length: "255", isNullable: false },
|
|
|
|
{ name: "description", type: "varchar", length: "255", isNullable: true },
|
2024-09-04 09:36:52 +00:00
|
|
|
],
|
|
|
|
}),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
|
|
|
|
await queryRunner.createForeignKey(
|
|
|
|
"communication",
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["typeId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "communication_type",
|
|
|
|
onDelete: "RESTRICT",
|
2024-09-14 09:33:13 +00:00
|
|
|
onUpdate: "RESTRICT",
|
2024-09-04 09:36:52 +00:00
|
|
|
})
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
|
|
const communication = await queryRunner.getTable("communication");
|
|
|
|
const foreignKey = communication.foreignKeys.find((fk) => fk.columnNames.indexOf("typeId") !== -1);
|
|
|
|
await queryRunner.dropForeignKey("communication", foreignKey);
|
|
|
|
|
|
|
|
await queryRunner.dropTable("qualification");
|
|
|
|
await queryRunner.dropTable("membership_status");
|
|
|
|
await queryRunner.dropTable("executive_position");
|
|
|
|
await queryRunner.dropTable("communication");
|
|
|
|
await queryRunner.dropTable("communication_type");
|
|
|
|
await queryRunner.dropTable("award");
|
|
|
|
}
|
|
|
|
}
|