开发者

Node.js on Heroku: PostgreSQL on prod, SQLite3 on dev?

I have a Node.js/Rails3 app that I'm hosting on Heroku. The rails portion seamlessly switches between PostgreSQL and SQLite3 when it's run on my local machine or the remote production box.

Locally, the rails framework conn开发者_开发技巧ects to SQLite3 as defined in config/databases.yml and when I push to Heorku, the deploy scripts overwrite this with their production setup.

My node.js scripts don't have a framework that Heroku can hook into and make sure I'm using the right database in my production environment.

How can I make my node.js scripts "Just Work" the way my Rails app moves seamlessly between development and production environments?


Heroku exposes a database URL you can connect to via the DATABASE_URL environment variable. Here's the relevant section from the 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));
  });
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜