import { MigrationInterface, QueryRunner } from "typeorm"; import { invite_table, refresh_table, reset_table, role_permission_table, role_table, user_permission_table, user_roles_table, user_table, webapi_permission_table, webapi_table, } from "./baseSchemaTables/admin"; import { templateUsage } from "../entity/configuration/templateUsage"; import { award_table, communication_type_table, executive_position_table, member_awards_table, member_communication_table, member_executive_positions_table, member_executive_positions_view_mysql, member_executive_positions_view_postgres, member_executive_positions_view_sqlite, member_qualifications_table, member_qualifications_view_mysql, member_qualifications_view_postgres, member_qualifications_view_sqlite, member_table, member_view_mysql, member_view_postgres, member_view_sqlite, membership_status_table, membership_table, membership_view_mysql, membership_view_postgres, membership_view_sqlite, qualification_table, salutation_table, } from "./baseSchemaTables/member"; import { query_table, template_table, template_usage_table } from "./baseSchemaTables/query_template"; import { protocol_agenda_table, protocol_decision_table, protocol_presence_table, protocol_printout_table, protocol_table, protocol_voting_table, } from "./baseSchemaTables/protocol"; import { calendar_table, calendar_type_table } from "./baseSchemaTables/calendar"; import { newsletter_config_table, newsletter_dates_table, newsletter_recipients_table, newsletter_table, } from "./baseSchemaTables/newsletter"; import { DB_TYPE } from "../env.defaults"; export class CreateSchema1738166167472 implements MigrationInterface { name = "CreateSchema1738166167472"; public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable(reset_table, true, true, true); await queryRunner.createTable(invite_table, true, true, true); await queryRunner.createTable(role_table, true, true, true); await queryRunner.createTable(role_permission_table, true, true, true); await queryRunner.createTable(user_table, true, true, true); await queryRunner.createTable(user_roles_table, true, true, true); await queryRunner.createTable(user_permission_table, true, true, true); await queryRunner.createTable(refresh_table, true, true, true); await queryRunner.createTable(webapi_table, true, true, true); await queryRunner.createTable(webapi_permission_table, true, true, true); await queryRunner.createTable(salutation_table, true, true, true); await queryRunner.createTable(award_table, true, true, true); await queryRunner.createTable(communication_type_table, true, true, true); await queryRunner.createTable(membership_status_table, true, true, true); await queryRunner.createTable(executive_position_table, true, true, true); await queryRunner.createTable(qualification_table, true, true, true); await queryRunner.createTable(member_table, true, true, true); await queryRunner.createTable(member_awards_table, true, true, true); await queryRunner.createTable(member_communication_table, true, true, true); await queryRunner.createTable(membership_table, true, true, true); await queryRunner.createTable(member_executive_positions_table, true, true, true); await queryRunner.createTable(member_qualifications_table, true, true, true); 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); if (DB_TYPE == "postgres") await queryRunner.createView(membership_view_postgres, true); else if (DB_TYPE == "mysql") await queryRunner.createView(membership_view_mysql, true); else if (DB_TYPE == "sqlite") await queryRunner.createView(membership_view_sqlite, true); if (DB_TYPE == "postgres") await queryRunner.createView(member_qualifications_view_postgres, true); else if (DB_TYPE == "mysql") await queryRunner.createView(member_qualifications_view_mysql, true); else if (DB_TYPE == "sqlite") await queryRunner.createView(member_qualifications_view_sqlite, true); if (DB_TYPE == "postgres") await queryRunner.createView(member_executive_positions_view_postgres, true); else if (DB_TYPE == "mysql") await queryRunner.createView(member_executive_positions_view_mysql, true); else if (DB_TYPE == "sqlite") await queryRunner.createView(member_executive_positions_view_sqlite, true); await queryRunner.createTable(query_table, true, true, true); await queryRunner.createTable(template_table, true, true, true); await queryRunner.createTable(template_usage_table, true, true, true); await queryRunner.manager .createQueryBuilder() .insert() .into(templateUsage) .values([{ scope: "newsletter" }, { scope: "protocol" }, { scope: "member.list" }]) .orIgnore() .execute(); await queryRunner.createTable(protocol_table, true, true, true); await queryRunner.createTable(protocol_agenda_table, true, true, true); await queryRunner.createTable(protocol_decision_table, true, true, true); await queryRunner.createTable(protocol_presence_table, true, true, true); await queryRunner.createTable(protocol_voting_table, true, true, true); await queryRunner.createTable(protocol_printout_table, true, true, true); await queryRunner.createTable(calendar_type_table, true, true, true); await queryRunner.createTable(calendar_table, true, true, true); await queryRunner.createTable(newsletter_config_table, true, true, true); await queryRunner.createTable(newsletter_table, true, true, true); await queryRunner.createTable(newsletter_dates_table, true, true, true); await queryRunner.createTable(newsletter_recipients_table, true, true, true); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable("newsletter_dates", true, true, true); await queryRunner.dropTable("newsletter_recipients", true, true, true); await queryRunner.dropTable("newsletter", true, true, true); await queryRunner.dropTable("newsletter_config", true, true, true); await queryRunner.dropTable("calendar", true, true, true); await queryRunner.dropTable("calendar_type", true, true, true); await queryRunner.dropTable("protocol_agenda", true, true, true); await queryRunner.dropTable("protocol_decision", true, true, true); await queryRunner.dropTable("protocol_presence", true, true, true); await queryRunner.dropTable("protocol_voting", true, true, true); await queryRunner.dropTable("protocol_printout", true, true, true); await queryRunner.dropTable("protocol", true, true, true); await queryRunner.dropTable("template_usage", true, true, true); await queryRunner.dropTable("template", true, true, true); await queryRunner.dropTable("query", true, true, true); await queryRunner.dropView("member_view"); await queryRunner.dropView("membership_view"); await queryRunner.dropView("member_qualifications_view"); await queryRunner.dropView("member_executive_positions_view"); await queryRunner.dropTable("member_awards", true, true, true); await queryRunner.dropTable("communication", true, true, true); await queryRunner.dropTable("membership", true, true, true); await queryRunner.dropTable("member_executive_positions", true, true, true); await queryRunner.dropTable("member_qualifications", true, true, true); await queryRunner.dropTable("member", true, true, true); await queryRunner.dropTable("salutation", true, true, true); await queryRunner.dropTable("award", true, true, true); await queryRunner.dropTable("communication_type", true, true, true); await queryRunner.dropTable("membership_status", true, true, true); await queryRunner.dropTable("executive_position", true, true, true); await queryRunner.dropTable("qualification", true, true, true); await queryRunner.dropTable("webapi_permission", true, true, true); await queryRunner.dropTable("webapi", true, true, true); await queryRunner.dropTable("refresh", true, true, true); await queryRunner.dropTable("user_permission", true, true, true); await queryRunner.dropTable("user_roles", true, true, true); await queryRunner.dropTable("user", true, true, true); await queryRunner.dropTable("role_permission", true, true, true); await queryRunner.dropTable("role", true, true, true); await queryRunner.dropTable("invite", true, true, true); await queryRunner.dropTable("reset", true, true, true); } }