1664971834974-groups.ts 1.6 KB

12345678910111213141516171819202122232425262728
  1. import { MigrationInterface, QueryRunner } from 'typeorm'
  2. export class groups1664971834974 implements MigrationInterface {
  3. name = 'groups1664971834974'
  4. public async up(queryRunner: QueryRunner): Promise<void> {
  5. await queryRunner.query(
  6. 'CREATE TABLE `groups` (`uuid` varchar(36) NOT NULL, `type` varchar(64) NOT NULL, PRIMARY KEY (`uuid`)) ENGINE=InnoDB',
  7. )
  8. await queryRunner.query(
  9. 'CREATE TABLE `group_users` (`uuid` varchar(36) NOT NULL, `access_level` varchar(64) NOT NULL, `user_uuid` varchar(36) NOT NULL, `group_uuid` varchar(36) NOT NULL, `encrypted_group_key` varchar(255) NOT NULL, UNIQUE INDEX `index_group_users_on_group_and_user` (`user_uuid`, `group_uuid`), PRIMARY KEY (`uuid`)) ENGINE=InnoDB',
  10. )
  11. await queryRunner.query(
  12. 'ALTER TABLE `group_users` ADD CONSTRAINT `FK_b97989611efde2c54b074127920` FOREIGN KEY (`user_uuid`) REFERENCES `users`(`uuid`) ON DELETE CASCADE ON UPDATE NO ACTION',
  13. )
  14. await queryRunner.query(
  15. 'ALTER TABLE `group_users` ADD CONSTRAINT `FK_9d1bcb8c649eb05d7a2eb62114e` FOREIGN KEY (`group_uuid`) REFERENCES `groups`(`uuid`) ON DELETE CASCADE ON UPDATE NO ACTION',
  16. )
  17. }
  18. public async down(queryRunner: QueryRunner): Promise<void> {
  19. await queryRunner.query('ALTER TABLE `group_users` DROP FOREIGN KEY `FK_9d1bcb8c649eb05d7a2eb62114e`')
  20. await queryRunner.query('ALTER TABLE `group_users` DROP FOREIGN KEY `FK_b97989611efde2c54b074127920`')
  21. await queryRunner.query('DROP INDEX `index_group_users_on_group_and_user` ON `group_users`')
  22. await queryRunner.query('DROP TABLE `group_users`')
  23. await queryRunner.query('DROP TABLE `groups`')
  24. }
  25. }