1632221263106-add_revisions_items_relation.ts 1.5 KB

12345678910111213141516171819202122232425262728
  1. import { MigrationInterface, QueryRunner } from 'typeorm'
  2. export class addRevisionsItemsRelation1632221263106 implements MigrationInterface {
  3. name = 'addRevisionsItemsRelation1632221263106'
  4. public async up(queryRunner: QueryRunner): Promise<void> {
  5. const indexRevisionsOnItemUuid = await queryRunner.manager.query(
  6. 'SHOW INDEX FROM `revisions` where `key_name` = "index_revisions_on_item_uuid"',
  7. )
  8. const indexRevisionsOnItemUuidExists = indexRevisionsOnItemUuid && indexRevisionsOnItemUuid.length > 0
  9. if (indexRevisionsOnItemUuidExists) {
  10. await queryRunner.query('DROP INDEX `index_revisions_on_item_uuid` ON `revisions`')
  11. }
  12. await queryRunner.query('ALTER TABLE `revisions` CHANGE `item_uuid` `item_uuid` varchar(36) NOT NULL')
  13. await queryRunner.query('ALTER TABLE `items` CHANGE `user_uuid` `user_uuid` varchar(36) NOT NULL')
  14. await queryRunner.query(
  15. 'ALTER TABLE `revisions` ADD CONSTRAINT `FK_ab3b92e54701fe3010022a31d90` FOREIGN KEY (`item_uuid`) REFERENCES `items`(`uuid`) ON DELETE CASCADE ON UPDATE NO ACTION',
  16. )
  17. }
  18. public async down(queryRunner: QueryRunner): Promise<void> {
  19. await queryRunner.query('ALTER TABLE `revisions` DROP FOREIGN KEY `FK_ab3b92e54701fe3010022a31d90`')
  20. await queryRunner.query('ALTER TABLE `items` CHANGE `user_uuid` `user_uuid` varchar(36) NULL')
  21. await queryRunner.query('ALTER TABLE `revisions` CHANGE `item_uuid` `item_uuid` varchar(36) NULL')
  22. await queryRunner.query('CREATE INDEX `index_revisions_on_item_uuid` ON `revisions` (`item_uuid`)')
  23. }
  24. }