Skip to content

Commit 9bee99d

Browse files
committed
Migration fix for prod deployment
1 parent 8477321 commit 9bee99d

1 file changed

Lines changed: 45 additions & 20 deletions

File tree

src/migrations/1713308449994-addreports.ts

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,54 @@ export class addreports1713308449994 implements MigrationInterface {
55

66
public async up(queryRunner: QueryRunner): Promise<void> {
77
await queryRunner.query(
8-
`CREATE TABLE "Message" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "content" character varying NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "sender" uuid, "receiver" uuid, CONSTRAINT "PK_7dd6398f0d1dcaf73df342fa325" PRIMARY KEY ("id"))`,
8+
`CREATE TABLE IF NOT EXISTS "Message" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "content" character varying NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "sender" uuid, "receiver" uuid, CONSTRAINT "PK_7dd6398f0d1dcaf73df342fa325" PRIMARY KEY ("id"))`,
99
);
1010
await queryRunner.query(
11-
`CREATE TABLE "Report" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "reason" character varying NOT NULL, "type" character varying NOT NULL, "resolved" boolean NOT NULL, "created" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "reporter_id" uuid, "reported_id" uuid, "post_id" uuid, "message_id" uuid, CONSTRAINT "PK_9dbb4c593be9832c28a5793e258" PRIMARY KEY ("id"))`,
12-
);
13-
await queryRunner.query(
14-
`ALTER TABLE "Message" ADD CONSTRAINT "FK_e2dae4735204f29947d6c42a615" FOREIGN KEY ("sender") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
15-
);
16-
await queryRunner.query(
17-
`ALTER TABLE "Message" ADD CONSTRAINT "FK_8cc2e2f4ee9cdf7e5d9c70c5809" FOREIGN KEY ("receiver") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
18-
);
19-
await queryRunner.query(
20-
`ALTER TABLE "Report" ADD CONSTRAINT "FK_6c3af08f1d45614f3b2f7e1b407" FOREIGN KEY ("reporter_id") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
21-
);
22-
await queryRunner.query(
23-
`ALTER TABLE "Report" ADD CONSTRAINT "FK_0dd9a57f65a4b09cdae63735b13" FOREIGN KEY ("reported_id") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
24-
);
25-
await queryRunner.query(
26-
`ALTER TABLE "Report" ADD CONSTRAINT "FK_244bde34d749985aa27e551c110" FOREIGN KEY ("post_id") REFERENCES "Post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
27-
);
28-
await queryRunner.query(
29-
`ALTER TABLE "Report" ADD CONSTRAINT "FK_b0ecf30cfa1f4908dec8d19547c" FOREIGN KEY ("message_id") REFERENCES "Message"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
11+
`CREATE TABLE IF NOT EXISTS "Report" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "reason" character varying NOT NULL, "type" character varying NOT NULL, "resolved" boolean NOT NULL, "created" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "reporter_id" uuid, "reported_id" uuid, "post_id" uuid, "message_id" uuid, CONSTRAINT "PK_9dbb4c593be9832c28a5793e258" PRIMARY KEY ("id"))`,
3012
);
13+
14+
// Add foreign keys only if they don't exist
15+
const fk1 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_e2dae4735204f29947d6c42a615'`);
16+
if (!fk1 || fk1.length === 0) {
17+
await queryRunner.query(
18+
`ALTER TABLE "Message" ADD CONSTRAINT "FK_e2dae4735204f29947d6c42a615" FOREIGN KEY ("sender") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
19+
);
20+
}
21+
22+
const fk2 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_8cc2e2f4ee9cdf7e5d9c70c5809'`);
23+
if (!fk2 || fk2.length === 0) {
24+
await queryRunner.query(
25+
`ALTER TABLE "Message" ADD CONSTRAINT "FK_8cc2e2f4ee9cdf7e5d9c70c5809" FOREIGN KEY ("receiver") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
26+
);
27+
}
28+
29+
const fk3 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_6c3af08f1d45614f3b2f7e1b407'`);
30+
if (!fk3 || fk3.length === 0) {
31+
await queryRunner.query(
32+
`ALTER TABLE "Report" ADD CONSTRAINT "FK_6c3af08f1d45614f3b2f7e1b407" FOREIGN KEY ("reporter_id") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
33+
);
34+
}
35+
36+
const fk4 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_0dd9a57f65a4b09cdae63735b13'`);
37+
if (!fk4 || fk4.length === 0) {
38+
await queryRunner.query(
39+
`ALTER TABLE "Report" ADD CONSTRAINT "FK_0dd9a57f65a4b09cdae63735b13" FOREIGN KEY ("reported_id") REFERENCES "User"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
40+
);
41+
}
42+
43+
const fk5 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_244bde34d749985aa27e551c110'`);
44+
if (!fk5 || fk5.length === 0) {
45+
await queryRunner.query(
46+
`ALTER TABLE "Report" ADD CONSTRAINT "FK_244bde34d749985aa27e551c110" FOREIGN KEY ("post_id") REFERENCES "Post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
47+
);
48+
}
49+
50+
const fk6 = await queryRunner.query(`SELECT 1 FROM pg_constraint WHERE conname = 'FK_b0ecf30cfa1f4908dec8d19547c'`);
51+
if (!fk6 || fk6.length === 0) {
52+
await queryRunner.query(
53+
`ALTER TABLE "Report" ADD CONSTRAINT "FK_b0ecf30cfa1f4908dec8d19547c" FOREIGN KEY ("message_id") REFERENCES "Message"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
54+
);
55+
}
3156
}
3257

3358
public async down(queryRunner: QueryRunner): Promise<void> {

0 commit comments

Comments
 (0)