fix(medusa): Add migration ensuring correct state of BatchJob model (#1825)

This commit is contained in:
Oliver Windall Juhl
2022-07-11 15:50:01 +02:00
committed by GitHub
parent 39f2c0c15e
commit fb82d3dd22
3 changed files with 47 additions and 4 deletions

View File

@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
- Add migration that ensures the correct state of the batch job table regardless of previous migrations

View File

@@ -5,7 +5,7 @@ export class addBatchJobModel1649775522087 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE "batch_job"
`CREATE TABLE "batch_job"
(
"id" character varying NOT NULL,
"type" text NOT NULL,
@@ -27,16 +27,16 @@ export class addBatchJobModel1649775522087 implements MigrationInterface {
)
await queryRunner.query(
`ALTER TABLE "batch_job"
`ALTER TABLE "batch_job"
ADD CONSTRAINT "FK_fa53ca4f5fd90605b532802a626" FOREIGN KEY ("created_by") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION`
)
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "batch_job"
`ALTER TABLE "batch_job"
DROP CONSTRAINT "FK_fa53ca4f5fd90605b532802a626"`
)
await queryRunner.query(`DROP TABLE "batch_job"`)
}
}
}

View File

@@ -0,0 +1,38 @@
import { MigrationInterface, QueryRunner } from "typeorm"
export class extendedBatchJob1657267320181 implements MigrationInterface {
name = "extendedBatchJob1657267320181"
public async up(queryRunner: QueryRunner): Promise<void> {
// check if batch job table exists and status column exists
// if that's the case, the previous migration has already been run
const batchJobColumnStatusExists = await queryRunner.query(`
SELECT exists (
SELECT FROM information_schema.columns
WHERE table_name = 'batch_job'
AND column_name = 'status'
)`)
// if the table exists, we alter the table to add the new columns
if (batchJobColumnStatusExists[0].exists) {
await queryRunner.query(`
ALTER TABLE "batch_job" DROP COLUMN "status";
DROP TYPE "public"."batch_job_status_enum";
ALTER TABLE "batch_job" ADD "dry_run" boolean NOT NULL DEFAULT false;
ALTER TABLE "batch_job" ADD "pre_processed_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" ADD "processing_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" ADD "confirmed_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" ADD "completed_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" ADD "canceled_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" ADD "failed_at" TIMESTAMP WITH TIME ZONE;
ALTER TABLE "batch_job" DROP COLUMN "created_by";
ALTER TABLE "batch_job" ADD "created_by" character varying;
ALTER TABLE "batch_job" ADD CONSTRAINT "FK_cdf30493ba1c9ef207e1e80c10a" FOREIGN KEY ("created_by") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
`)
}
}
public async down(queryRunner: QueryRunner): Promise<void> {
void 0
}
}