1689677867175-add-shared-vaults-with-users-and-invites.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { MigrationInterface, QueryRunner } from 'typeorm'
  2. export class AddSharedVaultsWithUsersAndInvites1689677867175 implements MigrationInterface {
  3. name = 'AddSharedVaultsWithUsersAndInvites1689677867175'
  4. public async up(queryRunner: QueryRunner): Promise<void> {
  5. await queryRunner.query(
  6. 'CREATE TABLE "shared_vaults" ("uuid" varchar PRIMARY KEY NOT NULL, "user_uuid" varchar(36) NOT NULL, "file_upload_bytes_used" integer NOT NULL, "file_upload_bytes_limit" integer NOT NULL, "created_at_timestamp" bigint NOT NULL, "updated_at_timestamp" bigint NOT NULL)',
  7. )
  8. await queryRunner.query('CREATE INDEX "user_uuid_on_shared_vaults" ON "shared_vaults" ("user_uuid") ')
  9. await queryRunner.query(
  10. 'CREATE TABLE "shared_vault_users" ("uuid" varchar PRIMARY KEY NOT NULL, "shared_vault_uuid" varchar(36) NOT NULL, "user_uuid" varchar(36) NOT NULL, "permission" varchar(24) NOT NULL, "created_at_timestamp" bigint NOT NULL, "updated_at_timestamp" bigint NOT NULL)',
  11. )
  12. await queryRunner.query(
  13. 'CREATE INDEX "shared_vault_uuid_on_shared_vault_users" ON "shared_vault_users" ("shared_vault_uuid") ',
  14. )
  15. await queryRunner.query('CREATE INDEX "user_uuid_on_shared_vault_users" ON "shared_vault_users" ("user_uuid") ')
  16. await queryRunner.query(
  17. 'CREATE TABLE "shared_vault_invites" ("uuid" varchar PRIMARY KEY NOT NULL, "shared_vault_uuid" varchar(36) NOT NULL, "user_uuid" varchar(36) NOT NULL, "sender_uuid" varchar(36) NOT NULL, "encrypted_message" text NOT NULL, "permission" varchar(24) NOT NULL, "created_at_timestamp" bigint NOT NULL, "updated_at_timestamp" bigint NOT NULL)',
  18. )
  19. await queryRunner.query(
  20. 'CREATE INDEX "shared_vault_uuid_on_shared_vault_invites" ON "shared_vault_invites" ("shared_vault_uuid") ',
  21. )
  22. await queryRunner.query('CREATE INDEX "user_uuid_on_shared_vault_invites" ON "shared_vault_invites" ("user_uuid") ')
  23. await queryRunner.query(
  24. 'CREATE INDEX "sender_uuid_on_shared_vault_invites" ON "shared_vault_invites" ("sender_uuid") ',
  25. )
  26. }
  27. public async down(queryRunner: QueryRunner): Promise<void> {
  28. await queryRunner.query('DROP INDEX "sender_uuid_on_shared_vault_invites"')
  29. await queryRunner.query('DROP INDEX "user_uuid_on_shared_vault_invites"')
  30. await queryRunner.query('DROP INDEX "shared_vault_uuid_on_shared_vault_invites"')
  31. await queryRunner.query('DROP TABLE "shared_vault_invites"')
  32. await queryRunner.query('DROP INDEX "user_uuid_on_shared_vault_users"')
  33. await queryRunner.query('DROP INDEX "shared_vault_uuid_on_shared_vault_users"')
  34. await queryRunner.query('DROP TABLE "shared_vault_users"')
  35. await queryRunner.query('DROP INDEX "user_uuid_on_shared_vaults"')
  36. await queryRunner.query('DROP TABLE "shared_vaults"')
  37. }
  38. }