在 KNEX/BookshelfJS 中定义'pool'的语法



首先,我是这里的一切新手……而对stackoverflow的新手,所以事先对成为新手表示歉意,我已经准备好了我的thrash ...大声笑。/p>

我们将heroku.addon用于Postgres,并在全球使用/参考环境变量访问正确的数据库。

我们在应用程序的根目录中有一个config.js文件,例如:

  db: process.env.DB_URL || {
    client: 'pg',
    connection: {
      database: 'db_name',
      user: 'user_name'
    }
  },

在这里有人可以指导我如何将"自定义池"信息初始化的代码集成到此设置中,例如[http://knexjs.org/#installation-pooling] [http://knexjs.s.org/#installation-pooling]

var knex = require('knex')({
  client: 'mysql',
  connection: {
    host : '127.0.0.1',
    user : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  },
  pool: { min: 0, max: 7 }
});

在heroku上,process.env.db_url是一个复杂的URL,类似于:

postgres://(redacted)@ec5-87-1-47-54.compute-1.amazonaws.com:5432/d8n2e9ebd0q9it

所以,我希望有一种干净的方法也可以通过"自定义池"信息在这里或在另一个文件/位置。

通过书架/knex在我们应用程序的整个后端中都引用了数据库。对书架的引用看起来类似于:

var knex = require('knex')(config.db);
var bookshelf = require('bookshelf')(knex);

您可以通过从Env变量中读取连接详细信息来完成此操作,例如:

db: {
    client: 'pg',
    connection: process.env.DB_URL || {
      database: 'db_name',
      user: 'user_name'
    },
    pool: { min:5, max:20 }
  },

相关内容

  • 没有找到相关文章

最新更新