2024-01-24 17:22:41 +07:00
import { MigrationInterface , QueryRunner } from "typeorm" ;
2024-01-26 20:25:18 +07:00
export class Start1706268166485 implements MigrationInterface {
name = 'Start1706268166485'
2024-01-24 17:22:41 +07:00
public async up ( queryRunner : QueryRunner ) : Promise < void > {
await queryRunner . query ( ` CREATE TABLE \` entity_base \` ( \` 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', PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
2024-01-26 20:25:18 +07:00
await queryRunner . query ( ` CREATE TABLE \` orgChild4 \` ( \` 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', \` orgChild4Name \` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \` orgChild4ShortName \` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \` orgChild4Code \` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \` orgChild4Rank \` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \` orgChild4Order \` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \` orgChild4PhoneEx \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \` orgChild4PhoneIn \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \` orgChild4Fax \` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \` orgRootId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild1Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild2Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild3Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` isAncestorDNA \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
await queryRunner . query ( ` CREATE TABLE \` orgChild3 \` ( \` 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', \` orgChild3Name \` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \` orgChild3ShortName \` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \` orgChild3Code \` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \` orgChild3Rank \` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \` orgChild3Order \` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \` orgChild3PhoneEx \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \` orgChild3PhoneIn \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \` orgChild3Fax \` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \` orgRootId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild1Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild2Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` isAncestorDNA \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
await queryRunner . query ( ` CREATE TABLE \` orgChild2 \` ( \` 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', \` orgChild2Name \` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \` orgChild2ShortName \` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \` orgChild2Code \` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \` orgChild2Rank \` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \` orgChild2Order \` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \` orgChild2PhoneEx \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \` orgChild2PhoneIn \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \` orgChild2Fax \` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \` orgRootId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgChild1Id \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` isAncestorDNA \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
await queryRunner . query ( ` CREATE TABLE \` orgChild1 \` ( \` 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', \` orgChild1Name \` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \` orgChild1ShortName \` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \` orgChild1Code \` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \` orgChild1Rank \` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \` orgChild1Order \` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \` orgChild1PhoneEx \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \` orgChild1PhoneIn \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \` orgChild1Fax \` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \` orgRootId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` isAncestorDNA \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
2024-01-26 15:54:07 +07:00
await queryRunner . query ( ` CREATE TABLE \` orgRevision \` ( \` 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', \` orgRevisionId \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionName \` varchar(255) NOT NULL DEFAULT 'string', \` orgRevisionIsCurrent \` tinyint NULL DEFAULT 0, \` orgRevisionCreatedAt \` datetime NULL, \` orgRevisionIsDraft \` tinyint NULL DEFAULT 0, PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
2024-01-26 20:25:18 +07:00
await queryRunner . query ( ` CREATE TABLE \` orgRoot \` ( \` 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', \` orgRootName \` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน' DEFAULT 'string', \` orgRootShortName \` varchar(16) NULL COMMENT 'ชื่อย่อหน่วยงาน' DEFAULT 'string', \` orgRootCode \` varchar(8) NULL COMMENT 'รหัสหน่วยงาน' DEFAULT 'string', \` orgRootRank \` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับของหน่วยงาน' DEFAULT 'DEPARTMENT', \` orgRootOrder \` int NULL COMMENT 'ลำดับที่ของหน่วยงาน', \` orgRootPhoneEx \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \` orgRootPhoneIn \` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \` orgRootFax \` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \` isAncestorDNA \` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \` orgRevisionId \` varchar(36) NULL, PRIMARY KEY ( \` id \` )) ENGINE=InnoDB ` ) ;
2024-01-25 10:13:36 +07:00
await queryRunner . query ( ` ALTER TABLE \` orgChild4 \` ADD CONSTRAINT \` FK_36291e45193793ac8730d5b9ff4 \` FOREIGN KEY ( \` orgChild3Id \` ) REFERENCES \` orgChild3 \` ( \` id \` ) ON DELETE NO ACTION ON UPDATE NO ACTION ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild3 \` ADD CONSTRAINT \` FK_abe35eefd8fb2bf682542c57b5e \` FOREIGN KEY ( \` orgChild2Id \` ) REFERENCES \` orgChild2 \` ( \` id \` ) ON DELETE NO ACTION ON UPDATE NO ACTION ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild2 \` ADD CONSTRAINT \` FK_b3e512809e7e8dea0a6a1c0d95f \` FOREIGN KEY ( \` orgChild1Id \` ) REFERENCES \` orgChild1 \` ( \` id \` ) ON DELETE NO ACTION ON UPDATE NO ACTION ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild1 \` ADD CONSTRAINT \` FK_9481ca31027bf02594ed533b765 \` FOREIGN KEY ( \` orgRootId \` ) REFERENCES \` orgRoot \` ( \` id \` ) ON DELETE NO ACTION ON UPDATE NO ACTION ` ) ;
2024-01-26 15:54:07 +07:00
await queryRunner . query ( ` ALTER TABLE \` orgRoot \` ADD CONSTRAINT \` FK_b9d787230c285dcd0ba4c63d33b \` FOREIGN KEY ( \` orgRevisionId \` ) REFERENCES \` orgRevision \` ( \` id \` ) ON DELETE NO ACTION ON UPDATE NO ACTION ` ) ;
2024-01-24 17:22:41 +07:00
}
public async down ( queryRunner : QueryRunner ) : Promise < void > {
2024-01-26 15:54:07 +07:00
await queryRunner . query ( ` ALTER TABLE \` orgRoot \` DROP FOREIGN KEY \` FK_b9d787230c285dcd0ba4c63d33b \` ` ) ;
2024-01-25 10:13:36 +07:00
await queryRunner . query ( ` ALTER TABLE \` orgChild1 \` DROP FOREIGN KEY \` FK_9481ca31027bf02594ed533b765 \` ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild2 \` DROP FOREIGN KEY \` FK_b3e512809e7e8dea0a6a1c0d95f \` ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild3 \` DROP FOREIGN KEY \` FK_abe35eefd8fb2bf682542c57b5e \` ` ) ;
await queryRunner . query ( ` ALTER TABLE \` orgChild4 \` DROP FOREIGN KEY \` FK_36291e45193793ac8730d5b9ff4 \` ` ) ;
2024-01-24 17:22:41 +07:00
await queryRunner . query ( ` DROP TABLE \` orgRoot \` ` ) ;
2024-01-26 20:25:18 +07:00
await queryRunner . query ( ` DROP TABLE \` orgRevision \` ` ) ;
2024-01-24 17:22:41 +07:00
await queryRunner . query ( ` DROP TABLE \` orgChild1 \` ` ) ;
await queryRunner . query ( ` DROP TABLE \` orgChild2 \` ` ) ;
await queryRunner . query ( ` DROP TABLE \` orgChild3 \` ` ) ;
await queryRunner . query ( ` DROP TABLE \` orgChild4 \` ` ) ;
await queryRunner . query ( ` DROP TABLE \` entity_base \` ` ) ;
}
}