fix seed issue

This commit is contained in:
marshal
2026-06-16 12:15:48 +03:00
parent 7151bce288
commit 00d1263f6d
2 changed files with 60 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ import { PaymentModule } from "./modules/payment/payment.module";
import { DemoBookingsSeeder } from "./seed/demo-bookings.seeder";
import { PricingDataSeeder } from "./seed/pricing-data.seeder";
import { FileUploadSettingsSeeder } from "./seed/file-upload-settings.seeder";
import { FreightPermissionKeyMigrationSeeder } from "./seed/freight-permission-key-migration.seeder";
//New Trains, Wagons, Container and Cargo management modules
import { TrainsModule } from "./modules/trains/trains.module";
import { WagonsModule } from './modules/wagons/wagons.module';
@@ -110,7 +111,15 @@ import { OverviewModule } from './modules/overview/overview.module';
RoutesModule,
OverviewModule,
],
providers: [EdrOrgSeeder, DemoUsersSeeder,FreightStaffUsersSeeder, DemoBookingsSeeder, PricingDataSeeder, FileUploadSettingsSeeder],
providers: [
EdrOrgSeeder,
DemoUsersSeeder,
FreightStaffUsersSeeder,
DemoBookingsSeeder,
PricingDataSeeder,
FileUploadSettingsSeeder,
FreightPermissionKeyMigrationSeeder,
],
})
export class AppModule implements OnApplicationBootstrap {
constructor(
@@ -121,9 +130,11 @@ export class AppModule implements OnApplicationBootstrap {
private readonly demoBookingsSeeder: DemoBookingsSeeder,
private readonly pricingDataSeeder: PricingDataSeeder,
private readonly fileUploadSettingsSeeder: FileUploadSettingsSeeder,
private readonly freightPermissionKeyMigrationSeeder: FreightPermissionKeyMigrationSeeder,
) { }
async onApplicationBootstrap() {
await this.freightPermissionKeyMigrationSeeder.run();
await this.seeder.run();
await this.edrOrgSeeder.run();
await this.demoUsersSeeder.run();

View File

@@ -0,0 +1,48 @@
import { Injectable, Logger } from '@nestjs/common';
import { Permission } from '@tria-plc/iamapi-common';
import { DataSource } from 'typeorm';
/** Renamed rule-engine resources: old key -> new key (same permission id). */
const PERMISSION_KEY_RENAMES: ReadonlyArray<{ from: string; to: string }> = [
{
from: 'edr_freight_app:rule_engine:priority_rules:view',
to: 'edr_freight_app:rule_engine:priority_configs:view',
},
{
from: 'edr_freight_app:rule_engine:priority_rules:manage',
to: 'edr_freight_app:rule_engine:priority_configs:manage',
},
];
@Injectable()
export class FreightPermissionKeyMigrationSeeder {
private readonly logger = new Logger(FreightPermissionKeyMigrationSeeder.name);
constructor(private readonly dataSource: DataSource) {}
async run() {
const permissionRepository = this.dataSource.getRepository(Permission);
for (const { from, to } of PERMISSION_KEY_RENAMES) {
const existing = await permissionRepository.findOne({
where: { key: from },
select: { id: true, key: true },
});
if (!existing) {
continue;
}
const targetExists = await permissionRepository.existsBy({ key: to });
if (targetExists) {
this.logger.warn(
`Skipping permission key rename ${from} -> ${to}: target key already exists`,
);
continue;
}
await permissionRepository.update({ id: existing.id }, { key: to });
this.logger.log(`Renamed permission key ${from} -> ${to}`);
}
}
}