1693915775491-add-shared-vault-information.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { MigrationInterface, QueryRunner } from 'typeorm'
  2. export class AddSharedVaultInformation1693915775491 implements MigrationInterface {
  3. name = 'AddSharedVaultInformation1693915775491'
  4. public async up(queryRunner: QueryRunner): Promise<void> {
  5. await queryRunner.query('DROP INDEX "user_uuid"')
  6. await queryRunner.query('DROP INDEX "item_uuid"')
  7. await queryRunner.query(
  8. 'CREATE TABLE "temporary_revisions" ("uuid" varchar PRIMARY KEY NOT NULL, "item_uuid" varchar(36) NOT NULL, "user_uuid" varchar(36), "content" text, "content_type" varchar(255), "items_key_id" varchar(255), "enc_item_key" text, "auth_hash" varchar(255), "creation_date" date, "created_at" datetime(6), "updated_at" datetime(6), "edited_by" varchar(36), "shared_vault_uuid" varchar(36), "key_system_identifier" varchar(36))',
  9. )
  10. await queryRunner.query(
  11. 'INSERT INTO "temporary_revisions"("uuid", "item_uuid", "user_uuid", "content", "content_type", "items_key_id", "enc_item_key", "auth_hash", "creation_date", "created_at", "updated_at") SELECT "uuid", "item_uuid", "user_uuid", "content", "content_type", "items_key_id", "enc_item_key", "auth_hash", "creation_date", "created_at", "updated_at" FROM "revisions"',
  12. )
  13. await queryRunner.query('DROP TABLE "revisions"')
  14. await queryRunner.query('ALTER TABLE "temporary_revisions" RENAME TO "revisions"')
  15. await queryRunner.query('CREATE INDEX "user_uuid" ON "revisions" ("user_uuid") ')
  16. await queryRunner.query('CREATE INDEX "item_uuid" ON "revisions" ("item_uuid") ')
  17. await queryRunner.query('CREATE INDEX "index_revisions_on_shared_vault_uuid" ON "revisions" ("shared_vault_uuid") ')
  18. }
  19. public async down(queryRunner: QueryRunner): Promise<void> {
  20. await queryRunner.query('DROP INDEX "index_revisions_on_shared_vault_uuid"')
  21. await queryRunner.query('DROP INDEX "item_uuid"')
  22. await queryRunner.query('DROP INDEX "user_uuid"')
  23. await queryRunner.query('ALTER TABLE "revisions" RENAME TO "temporary_revisions"')
  24. await queryRunner.query(
  25. 'CREATE TABLE "revisions" ("uuid" varchar PRIMARY KEY NOT NULL, "item_uuid" varchar(36) NOT NULL, "user_uuid" varchar(36), "content" text, "content_type" varchar(255), "items_key_id" varchar(255), "enc_item_key" text, "auth_hash" varchar(255), "creation_date" date, "created_at" datetime(6), "updated_at" datetime(6))',
  26. )
  27. await queryRunner.query(
  28. 'INSERT INTO "revisions"("uuid", "item_uuid", "user_uuid", "content", "content_type", "items_key_id", "enc_item_key", "auth_hash", "creation_date", "created_at", "updated_at") SELECT "uuid", "item_uuid", "user_uuid", "content", "content_type", "items_key_id", "enc_item_key", "auth_hash", "creation_date", "created_at", "updated_at" FROM "temporary_revisions"',
  29. )
  30. await queryRunner.query('DROP TABLE "temporary_revisions"')
  31. await queryRunner.query('CREATE INDEX "item_uuid" ON "revisions" ("item_uuid") ')
  32. await queryRunner.query('CREATE INDEX "user_uuid" ON "revisions" ("user_uuid") ')
  33. }
  34. }