ruby-on-rails - Heroku 上的 Node.js : PostgreSQL on prod, SQLite3 on dev?

标签 ruby-on-rails deployment node.js heroku

我有一个托管在 Heroku 上的 Node.js/Rails3 应用程序。当它在我的本地机器或远程生产机器上运行时,rails 部分在 PostgreSQL 和 SQLite3 之间无缝切换。

在本地,rails 框架连接到 config/databases.yml 中定义的 SQLite3,当我推送到 Heorku 时,部署脚本会使用其生产设置覆盖它。

我的 node.js 脚本没有 Heroku 可以 Hook 并确保我在生产环境中使用正确数据库的框架。

如何让我的 node.js 脚本“正常工作”,就像我的 Rails 应用程序在开发和生产环境之间无缝移动一样?

最佳答案

Heroku 公开了一个数据库 URL,您可以通过 DATABASE_URL 环境变量连接到该 URL。这是来自 Heroku Dev Center docs 的相关部分.

Using a Postgres Database

To add a PostgreSQL database to your app, run this command:

$ heroku addons:add shared-database

This sets the DATABASE_URL environment variable. Add the postgres NPM module to your dependencies:

"dependencies": {
  ...  
  "pg": "0.5.4"
}

And use the module to connect to DATABASE_URL from somewhere in your code:

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));
  });
});

关于ruby-on-rails - Heroku 上的 Node.js : PostgreSQL on prod, SQLite3 on dev?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7452444/

相关文章:

perl - 如何打包我的 Perl 应用程序的依赖项以进行部署?

javascript - 在 CSS Nodejs 中包含 JS 变量

node.js - docker webpack编译文件运行时丢失

ruby-on-rails - Rails Edge/4 错误 `require' : cannot load such file -- thread_safe

ruby-on-rails - 在 Ruby 调试中,只单步执行应用程序/项目文件并跳过框架文件?

maven - 使用 tomcat-maven-plugin 将单个 war 部署到多个 tomcat

asp.net - 一起部署DotNetNuke和单独的ASP.NET应用程序-可能的问题?

javascript - `npm install` 未安装本地包子依赖项

javascript - Rails chop 阅读更多

html - 在 rails 中 Bootstrap ——没有 bootstrap.css