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 connects 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-databaseThis sets the
DATABASE_URLenvironment variable. Add thepostgresNPM module to your dependencies:"dependencies": { ... "pg": "0.5.4" }And use the module to connect to
DATABASE_URLfrom 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)); }); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With