UNPKG

@sphereon/ssi-sdk.data-store

Version:

65 lines (61 loc) 3.81 kB
import { MigrationInterface, QueryRunner } from 'typeorm' export class CreateStatusList1693866470002 implements MigrationInterface { name = 'CreateStatusList1693866470002' public async up(queryRunner: QueryRunner): Promise<void> { await queryRunner.query( `CREATE TABLE "StatusListEntry" ( "statusListId" varchar NOT NULL, "statusListIndex" integer NOT NULL, "credentialId" varchar, "credentialHash" varchar(128), "correlationId" varchar(255), "value" varchar(50), PRIMARY KEY ("statusListId", "statusListIndex") )`, ) await queryRunner.query( `CREATE TABLE "StatusList" ( "id" varchar PRIMARY KEY NOT NULL, "correlationId" varchar NOT NULL, "length" integer NOT NULL, "issuer" text NOT NULL, "type" varchar CHECK ( "type" IN ('StatusList2021') ) NOT NULL DEFAULT ('StatusList2021'), "driverType" varchar CHECK ( "driverType" IN ('agent_typeorm', 'agent_kv_store', 'github', 'agent_filesystem') ) NOT NULL DEFAULT ('agent_typeorm'), "credentialIdMode" varchar CHECK ( "credentialIdMode" IN ('ISSUANCE', 'PERSISTENCE', 'NEVER') ) NOT NULL DEFAULT ('ISSUANCE'), "proofFormat" varchar CHECK ( "proofFormat" IN ('lds', 'jwt') ) NOT NULL DEFAULT ('lds'), "indexingDirection" varchar CHECK ( "indexingDirection" IN ('rightToLeft') ) NOT NULL DEFAULT ('rightToLeft'), "statusPurpose" varchar NOT NULL DEFAULT ('revocation'), "statusListCredential" text, CONSTRAINT "UQ_correlationId" UNIQUE ("correlationId") )`, ) await queryRunner.query( `CREATE TABLE "temporary_StatusListEntry" ( "statusListId" varchar NOT NULL, "statusListIndex" integer NOT NULL, "credentialId" varchar, "credentialHash" varchar(128), "correlationId" varchar(255), "value" varchar(50), CONSTRAINT "FK_statusListEntry_statusListId" FOREIGN KEY ("statusListId") REFERENCES "StatusList" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, PRIMARY KEY ("statusListId", "statusListIndex") )`, ) await queryRunner.query( `INSERT INTO "temporary_StatusListEntry"("statusListId", "statusListIndex", "credentialId", "credentialHash", "correlationId", "value") SELECT "statusListId", "statusListIndex", "credentialId", "credentialHash", "correlationId", "value" FROM "StatusListEntry"`, ) await queryRunner.query(`DROP TABLE "StatusListEntry"`) await queryRunner.query(`ALTER TABLE "temporary_StatusListEntry" RENAME TO "StatusListEntry"`) } public async down(queryRunner: QueryRunner): Promise<void> { await queryRunner.query(`DROP TABLE "StatusListEntry"`) await queryRunner.query(`DROP TABLE "StatusList"`) } }