Я думаю, это может быть связано с тем, что при создании миграции вы, вероятно, используете пакет typeorm, верно? (вроде так typeorm migration:create -n PostRefactoring
). Который будет использовать конфигурацию, совершенно отличную от той, которую вы указали в своем приложении. Я предполагаю, что самый простой способ - создать файл env и использовать TYPEORM_MIGRATION_DIR
для определения вашего каталога миграции.
См. Здесь для доступных опций env http://typeorm.io/#/using-ormconfig/using-environment-variables. Затем вы можете связать ваши envs с вашим приложением, чтобы они были определены в одном месте.
Я не хочу быть тем человеком, который будет рекламировать свои собственные пакеты, вы можете легко выполнить свои собственные настройки, если хотите. Я построил модуль конфигурации, который вы можете использовать для настройки типа, например так:
https://github.com/nestjs-community/nestjs-config#typeorm
import {Module} from '@nestjs/common';
import {ConfigModule, ConfigService} from 'nestjs-config';
import {TypeOrmModule} from '@nestjs/typeorm';
import * as path from 'path';
@Module({
imports: [
ConfigModule.load(path.resolve(__dirname, 'config/**/*.{ts,js}')),
TypeOrmModule.forRootAsync({
useFactory: (config: ConfigService) => config.get('database'),
inject: [ConfigService],
}),
],
})
export class AppModule {}
Это позволит вам определить ваши конфиги в файле примерно так:
//src/config/database.ts
export default {
type: 'mssql',
host: process.env.TYPEORM_HOST,
port: process.env.TYPEORM_PORT,
username: process.env.TYPEORM_USERNAME,
password: process.env.TYPEORM_PASSWORD,
database: process.env.TYPEORM_DATABASE,
entities: [process.env.TYPEORM_ENTITIES],
synchronize: process.env.TYPEORM_SYNCHRONIZE == 'true',
migrationsDir: process.env.TYPEORM_MIGRATIONS_DIR
};
Тогда ваш .env
TYPEORM_HOST=test
TYPEORM_USERNAME=test
TYPEORM_PASSWORD=test
TYPEORM_PORT=1
TYPEORM_MIGRATIONS_DIR=src/migrations
Теперь вы сможете использовать команду typeorm
, и вы по-прежнему будете определять свои базы данных в одном месте. Надеюсь это поможет!