mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 00:52:50 +00:00
fix
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class FixOrphanedRouteMilestones1718549400000 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Delete orphaned route_milestones records (yard_id is NOT NULL, cannot be set to null)
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."route_milestones"
|
||||
WHERE "yard_id" IS NOT NULL
|
||||
AND "yard_id" NOT IN (SELECT "id" FROM "freight"."yards")
|
||||
`);
|
||||
|
||||
console.log('✅ Deleted orphaned route_milestones records');
|
||||
}
|
||||
|
||||
public async down(_queryRunner: QueryRunner): Promise<void> {
|
||||
// No rollback needed for data cleanup
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class FixOrphanedRoutes1718549500000 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Delete orphaned routes records with invalid origin_yard_id
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."routes"
|
||||
WHERE "origin_yard_id" IS NOT NULL
|
||||
AND "origin_yard_id" NOT IN (SELECT "id" FROM "freight"."yards")
|
||||
`);
|
||||
|
||||
// Also clean up destination_yard_id if it exists and has the same issue
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."routes"
|
||||
WHERE "destination_yard_id" IS NOT NULL
|
||||
AND "destination_yard_id" NOT IN (SELECT "id" FROM "freight"."yards")
|
||||
`);
|
||||
|
||||
console.log('✅ Deleted orphaned routes records');
|
||||
}
|
||||
|
||||
public async down(_queryRunner: QueryRunner): Promise<void> {
|
||||
// No rollback needed for data cleanup
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class FixOrphanedBookings1718549600000 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// First, delete orphaned unloading_registrations that reference bookings with invalid yards
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."unloading_registrations"
|
||||
WHERE "booking_id" IN (
|
||||
SELECT b."id" FROM "freight"."bookings" b
|
||||
WHERE (
|
||||
("origin_yard_id" IS NOT NULL AND "origin_yard_id" NOT IN (SELECT "id" FROM "freight"."yards"))
|
||||
OR
|
||||
("destination_yard_id" IS NOT NULL AND "destination_yard_id" NOT IN (SELECT "id" FROM "freight"."yards"))
|
||||
)
|
||||
)
|
||||
`);
|
||||
|
||||
// Delete orphaned bookings records with invalid origin_yard_id
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."bookings"
|
||||
WHERE "origin_yard_id" IS NOT NULL
|
||||
AND "origin_yard_id" NOT IN (SELECT "id" FROM "freight"."yards")
|
||||
`);
|
||||
|
||||
// Also clean up destination_yard_id if it exists and has the same issue
|
||||
await queryRunner.query(`
|
||||
DELETE FROM "freight"."bookings"
|
||||
WHERE "destination_yard_id" IS NOT NULL
|
||||
AND "destination_yard_id" NOT IN (SELECT "id" FROM "freight"."yards")
|
||||
`);
|
||||
|
||||
console.log('✅ Deleted orphaned unloading_registrations and bookings records');
|
||||
}
|
||||
|
||||
public async down(_queryRunner: QueryRunner): Promise<void> {
|
||||
// No rollback needed for data cleanup
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user