hrms-api-org/src/migration/1732684774187-add_table_apikey.ts
2024-11-27 13:53:49 +07:00

28 lines
5.6 KiB
TypeScript

import { MigrationInterface, QueryRunner } from "typeorm";
export class AddTableApikey1732684774187 implements MigrationInterface {
name = 'AddTableApikey1732684774187'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE \`apiName\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`pathApi\` varchar(255) NULL COMMENT 'path', \`methodApi\` varchar(255) NULL COMMENT 'method', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`apiHistory\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`headerApi\` varchar(255) NULL COMMENT 'header', \`tokenApi\` varchar(255) NULL COMMENT 'token', \`requestApi\` varchar(255) NULL COMMENT 'request', \`responseApi\` varchar(255) NULL COMMENT 'response', \`ipApi\` varchar(255) NULL COMMENT 'ip', \`codeApi\` varchar(255) NULL COMMENT 'code', \`apiKeyId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง ApiKey', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`apiKey\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`name\` varchar(255) NULL COMMENT 'ชื่อ', \`keyApi\` varchar(255) NULL COMMENT 'keyApi', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`api_name_api_keys_api_key\` (\`apiNameId\` varchar(36) NOT NULL, \`apiKeyId\` varchar(36) NOT NULL, INDEX \`IDX_c3041f5a935e01f450e82bf0a2\` (\`apiNameId\`), INDEX \`IDX_9c4f2a7257f66993fe200e9e6d\` (\`apiKeyId\`), PRIMARY KEY (\`apiNameId\`, \`apiKeyId\`)) ENGINE=InnoDB`);
await queryRunner.query(`ALTER TABLE \`apiHistory\` ADD CONSTRAINT \`FK_3d48a4b98bc829f401a6e694f1b\` FOREIGN KEY (\`apiKeyId\`) REFERENCES \`apiKey\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`api_name_api_keys_api_key\` ADD CONSTRAINT \`FK_c3041f5a935e01f450e82bf0a23\` FOREIGN KEY (\`apiNameId\`) REFERENCES \`apiName\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE`);
await queryRunner.query(`ALTER TABLE \`api_name_api_keys_api_key\` ADD CONSTRAINT \`FK_9c4f2a7257f66993fe200e9e6dc\` FOREIGN KEY (\`apiKeyId\`) REFERENCES \`apiKey\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`api_name_api_keys_api_key\` DROP FOREIGN KEY \`FK_9c4f2a7257f66993fe200e9e6dc\``);
await queryRunner.query(`ALTER TABLE \`api_name_api_keys_api_key\` DROP FOREIGN KEY \`FK_c3041f5a935e01f450e82bf0a23\``);
await queryRunner.query(`ALTER TABLE \`apiHistory\` DROP FOREIGN KEY \`FK_3d48a4b98bc829f401a6e694f1b\``);
await queryRunner.query(`DROP INDEX \`IDX_9c4f2a7257f66993fe200e9e6d\` ON \`api_name_api_keys_api_key\``);
await queryRunner.query(`DROP INDEX \`IDX_c3041f5a935e01f450e82bf0a2\` ON \`api_name_api_keys_api_key\``);
await queryRunner.query(`DROP TABLE \`api_name_api_keys_api_key\``);
await queryRunner.query(`DROP TABLE \`apiKey\``);
await queryRunner.query(`DROP TABLE \`apiHistory\``);
await queryRunner.query(`DROP TABLE \`apiName\``);
}
}