我使用nestjs和typeorm迁移数据。我使用的配置如下:
const baseDir = process.env.NODE_ENV == 'prod' ? 'dist/src' : 'src';
export const makeDataSourceOptions = (): DataSourceOptions => {
const dataSource: DataSourceOptions = {
type: 'postgres',
host: process.env.POSTGRES_HOST ?? '__DATABASE_HOST__',
port: parseInt(process.env.POSTGRES_PORT ?? '5432', 10),
username: process.env.POSTGRES_USER ?? '__DATABASE_USER__',
password: process.env.POSTGRES_PASSWORD ?? '__DATABASE_PASSWORD__',
database: process.env.POSTGRES_DB ?? '__DATABASE_NAME__',
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
migrations: [baseDir + '/migrations/*{.ts,.js}'],
logging: true,
synchronize: false,
};
return dataSource;
};
配置多腾:
config({
path:
process.env.NODE_ENV === 'production'
? __dirname + '/../../.env.prod'
: __dirname + '/../../.env.dev',
});
当我在开发上迁移时,我必须在 .env.dev 上输入所有信息 env ,运行命令 export NODE_ENV=dev 并运行命令 yarn migration:up 。它迁移成功。 但是当我迁移 prod 时,我必须在 .env.prod 上输入所有信息 env , export NODE_ENV=dev 并运行 yarn migration:up 。 有一个更好的方法吗?因为每次迁移我都必须编辑 .env.prod 文件。如果我使用像 cloud run 这样的服务,有没有比手动编辑 .env.prod 这样的文件中的环境变量更好的方法?请帮忙
我的情况是添加如下选项:
migrationsRun: process.env.NODE_ENV === 'production'
这将在生产环境中自动运行所有迁移文件