Jor*_*ein 3 deployment ruby-on-rails heroku node.js
我有一个Node.js/Rails3应用程序,我在Heroku上托管.当在我的本地机器或远程生产盒上运行时,rails部分在PostgreSQL和SQLite3之间无缝切换.
在本地,rails框架按照定义连接到SQLite3 config/databases.yml
,当我推送到Heorku时,部署脚本会用生产设置覆盖它.
我的node.js脚本没有Heroku可以挂钩的框架,并确保我在生产环境中使用正确的数据库.
如何让我的node.js脚本"正常工作"我的Rails应用程序在开发和生产环境之间无缝移动的方式?
Heroku公开了一个可以通过DATABASE_URL
环境变量连接的数据库URL .这是Heroku开发中心文档的相关部分.
使用Postgres数据库
要将PostgreSQL数据库添加到您的应用程序,请运行以下命令:
Run Code Online (Sandbox Code Playgroud)$ heroku addons:add shared-database
这将设置
DATABASE_URL
环境变量.将postgres
NPM模块添加到依赖项:Run Code Online (Sandbox Code Playgroud)"dependencies": { ... "pg": "0.5.4" }
并使用该模块
DATABASE_URL
从代码中的某个地方连接:Run Code Online (Sandbox Code Playgroud)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)); }); });