我有一个Node.js / Rails3应用程序,我正在Heroku上托管。当在我的本地机器或远程生产盒上运行时,rails部分在PostgreSQL和SQLite3之间无缝切换。
在本地,rails框架按照config/databases.yml
中的定义连接到SQLite3,当我推送到Heorku时,部署脚本会用生产设置覆盖它。
我的node.js脚本没有Heroku可以挂钩的框架,并确保我在生产环境中使用正确的数据库。
如何让我的node.js脚本“正常工作”,就像我的Rails应用程序在开发环境和生产环境之间无缝移动一样?
答案 0 :(得分:5)
Heroku公开了一个可以通过DATABASE_URL
环境变量连接到的数据库URL。以下是Heroku Dev Center docs的相关部分。
使用Postgres数据库
要将PostgreSQL数据库添加到您的应用程序,请运行以下命令:
$ heroku addons:add shared-database
设置
DATABASE_URL
环境变量。将postgres
NPM模块添加到您的 依赖关系:"dependencies": { ... "pg": "0.5.4" }
使用该模块从代码中的某个位置连接到
DATABASE_URL
:var pg = require('pg'); pg.connect(process.env.DATABASE_URL, function(err, client) { var query = client.query('SELECT * FROM your_table'); query.on('row', function(row) { console.log(JSON.stringify(row)); }); });