34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";
|
|
import {
|
|
education_table,
|
|
member_educations_table,
|
|
member_view_mysql,
|
|
member_view_postgres,
|
|
member_view_sqlite,
|
|
} from "./baseSchemaTables/member";
|
|
import { getDefaultByORM, getTypeByORM } from "./ormHelper";
|
|
import { DB_TYPE } from "../env.defaults";
|
|
|
|
export class MemberExtendData1748953828644 implements MigrationInterface {
|
|
name = "MemberExtendData1748953828644";
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.createTable(education_table, true, true, true);
|
|
await queryRunner.createTable(member_educations_table, true, true, true);
|
|
await queryRunner.addColumn(
|
|
"member",
|
|
new TableColumn({ name: "note", ...getTypeByORM("varchar", true), default: getDefaultByORM("null") })
|
|
);
|
|
|
|
await queryRunner.dropView("member_view");
|
|
if (DB_TYPE == "postgres") await queryRunner.createView(member_view_postgres, true);
|
|
else if (DB_TYPE == "mysql") await queryRunner.createView(member_view_mysql, true);
|
|
else if (DB_TYPE == "sqlite") await queryRunner.createView(member_view_sqlite, true);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.dropTable(member_educations_table, true, true, true);
|
|
await queryRunner.dropTable(education_table, true, true, true);
|
|
await queryRunner.dropColumn("member", "note");
|
|
}
|
|
}
|