如何在不使用.env文件的情况下通过typeorm将nestjs上的数据迁移到prod上

问题描述 投票:0回答:1

我使用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 这样的文件中的环境变量更好的方法?请帮忙

nestjs migration typeorm database-migration nestjs-typeorm
1个回答
0
投票

我的情况是添加如下选项:

  migrationsRun: process.env.NODE_ENV === 'production'

这将在生产环境中自动运行所有迁移文件

© www.soinside.com 2019 - 2024. All rights reserved.