diff --git a/backend/src/db/migrations/20240802181855_ca-cert-version.ts b/backend/src/db/migrations/20240802181855_ca-cert-version.ts index 24eca185d..c38a2d42a 100644 --- a/backend/src/db/migrations/20240802181855_ca-cert-version.ts +++ b/backend/src/db/migrations/20240802181855_ca-cert-version.ts @@ -64,23 +64,25 @@ export async function up(knex: Knex): Promise { } if (await knex.schema.hasTable(TableName.Certificate)) { - await knex.schema.alterTable(TableName.Certificate, (t) => { - t.uuid("caCertId").nullable(); - t.foreign("caCertId").references("id").inTable(TableName.CertificateAuthorityCert); - }); + const hasCaCertIdColumn = await knex.schema.hasColumn(TableName.Certificate, "caCertId"); + if (!hasCaCertIdColumn) { + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.uuid("caCertId").nullable(); + t.foreign("caCertId").references("id").inTable(TableName.CertificateAuthorityCert); + }); - await knex.raw(` + await knex.raw(` UPDATE "${TableName.Certificate}" cert SET "caCertId" = ( SELECT caCert.id FROM "${TableName.CertificateAuthorityCert}" caCert WHERE caCert."caId" = cert."caId" - ) - `); + )`); - await knex.schema.alterTable(TableName.Certificate, (t) => { - t.uuid("caCertId").notNullable().alter(); - }); + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.uuid("caCertId").notNullable().alter(); + }); + } } } diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 40c17a7fe..77a1e04ab 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -69,4 +69,4 @@ volumes: driver: local networks: - infisical: + infisical: \ No newline at end of file