根据环境使用不同的ormconfig.json文件

Ale*_*lls 3 node.js typescript typeorm

我的ormconfig.json当然是静态的,它看起来像:

{
   "type": "mariadb",
   "host": "localhost",
   "port": 3306,
   "username": "root",
   "password": "moove",
   "database": "moove_db",
   "synchronize": true,
   "logging": false,
   "entities": [
      "dist/entity/**/*.js"
   ],
   "migrations": [
      "dist/migration/**/*.js"
   ],
   "subscribers": [
      "dist/subscriber/**/*.js"
   ],
   "cli": {
      "entitiesDir": "dist/entity",
      "migrationsDir": "dist/migration",
      "subscribersDir": "dist/subscriber"
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想为生产服务器创建另一个配置怎么办?我是否要创建另一个配置文件?如何将typeorm指向其他配置文件?

Ale*_*lls 8

目前,我能够将更ormconfig.json改为ormconfig.js,然后使用env变量,如下所示:

module.exports = {
   "port": process.env.port,
   "entities": [
      // ...
   ],
   "migrations": [
      // ...
   ],
   "subscribers": [
     // ...
   ],
   "cli": {
      // ...
   }
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*ato 6

不要使用 ormconfig.json。您可以将配置对象直接传递给 createConnection() ,例如

import { createConnection } from "typeorm";

const config:any = {
       "port": process.env.port || "28017",
       "entities": [
          // ...
       ],
       "migrations": [
          // ...
       ],
       "subscribers": [
         // ...
       ],
       "cli": {
          // ...
       }
    }
    createConnection(config).then(async connection => {
        await loadPosts(connection);
    }).catch(error => console.log(error));
Run Code Online (Sandbox Code Playgroud)

  • TypeORM CLI 不能与此方法一起使用。 (3认同)