1669735585016-make-user-uuid-nullable.ts 1.1 KB

12345678910111213141516171819202122232425
  1. import { MigrationInterface, QueryRunner } from 'typeorm'
  2. export class makeUserUuidNullable1669735585016 implements MigrationInterface {
  3. name = 'makeUserUuidNullable1669735585016'
  4. public async up(queryRunner: QueryRunner): Promise<void> {
  5. await this.renameRevisionsTable(queryRunner)
  6. await queryRunner.query('ALTER TABLE `revisions_revisions` CHANGE `user_uuid` `user_uuid` varchar(36) NULL')
  7. }
  8. public async down(queryRunner: QueryRunner): Promise<void> {
  9. await queryRunner.query('ALTER TABLE `revisions_revisions` CHANGE `user_uuid` `user_uuid` varchar(36) NOT NULL')
  10. }
  11. private async renameRevisionsTable(queryRunner: QueryRunner) {
  12. const revisionsTableExistsQueryResult = await queryRunner.manager.query(
  13. 'SELECT COUNT(*) as count FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = "revisions"',
  14. )
  15. const revisionsTableExists = revisionsTableExistsQueryResult[0].count === 1
  16. if (revisionsTableExists) {
  17. await queryRunner.query('ALTER TABLE `revisions` RENAME TO `revisions_revisions`, ALGORITHM=INSTANT')
  18. }
  19. }
  20. }