首先,我对这里的所有内容都很陌生......而且是StackOverflow的新手,所以提前为新手道歉,我已经为我的捶打做好了准备......大声笑。
我们为Postgres使用Heroku.addon并全局使用/ reference环境变量来访问正确的数据库。
我们在应用程序的根目录中有一个config.js文件,如:
db: process.env.DB_URL || {
client: 'pg',
connection: {
database: 'db_name',
user: 'user_name'
}
},
这里有人能够指导我如何将初始化“自定义池”信息的代码集成到此设置中,就像在上面找到的示例一样 [http://knexjs.org/#Installation-pooling][http://knexjs.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
所以,我希望有一个干净的方法也可以在这里或在另一个文件/位置传递'自定义池'信息。
通过Bookshelf / Knex在我们的应用程序的后端引用数据库。对书架的引用类似于:
var knex = require('knex')(config.db);
var bookshelf = require('bookshelf')(knex);
答案 0 :(得分:1)
您可以通过从env变量中读取连接详细信息来完成此操作,如下所示:
db: {
client: 'pg',
connection: process.env.DB_URL || {
database: 'db_name',
user: 'user_name'
},
pool: { min:5, max:20 }
},