I am getting an error while generating migrations in my project. The error is due to the transformer I am using in one of my Entities.
This is the error I am getting:
npm run migration:run
nest-starter@0.0.1 migration:run
npm run typeorm migration:run -- -d src/database/migration-data-source.ts
nest-starter@0.0.1 typeorm typeorm-ts-node-commonjs migration:run -d src/database/migration-data-source.ts
query: SELECT VERSION() AS
versionError during migration run: Error: Cannot find module 'src/core/transformers/Decimal.transformer' Require stack:
Migration Script
import { ConfigService } from '@nestjs/config';
import { DataSource } from 'typeorm';
import { ConfigModule } from '@nestjs/config';
import { cwd } from 'process';
import { join } from 'path';
// This is needed to simulate the environment outside of NestJS
ConfigModule.forRoot();
// Initialize ConfigService
const configService = new ConfigService();
// Create a minimal DataSource instance for migrations without entities
export const MigrationDataSource = new DataSource({
type: 'mysql',
host: configService.get<string>('DB_HOST'),
port: parseInt(configService.get<string>('DB_PORT'), 3306),
username: configService.get<string>('DB_USERNAME'),
password: configService.get<string>('DB_PASSWORD'),
database: configService.get<string>('DB_NAME'),
entities: [join(cwd(), 'src/entities/*.entity.ts')],
migrations: [
join(cwd(), 'src/database/migrations/*.ts'),
join(cwd(), 'src/database/migrations/*.js')
],
synchronize: false,
logging: true,
ssl: {
rejectUnauthorized: false,
},
});
Transformer Usage:
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn, ManyToOne, JoinColumn } from "typeorm";
import { Payroll } from "./Payroll.entity";
import { DecimalTransformer } from "src/core/transformers/Decimal.transformer";
@Entity('payroll_dump')
export class PayrollDump extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column('decimal', { precision: 10, scale: 2, transformer: DecimalTransformer()})
earnings: number;
// ... Other fields and joins
}
try not to import it from src. Instead, use something like:
../core/transformers/Decimal.transformer