Node.js на Heroku: PostgreSQL на prod, SQLite3 на dev? - PullRequest
3 голосов
/ 17 сентября 2011

У меня есть приложение Node.js / Rails3, которое я размещаю на Heroku. Часть rails легко переключается между PostgreSQL и SQLite3, когда она запускается на моем локальном компьютере или на удаленной рабочей машине.

Локально, инфраструктура rails подключается к SQLite3, как определено в config/databases.yml, и когда я нажимаю на Heorku, сценарии развертывания перезаписывают это своей производственной настройкой.

Мои сценарии node.js не имеют инфраструктуры, которую Heroku может подключить и убедиться, что я использую правильную базу данных в своей производственной среде.

Как сделать так, чтобы мои сценарии node.js просто работали так, как мое приложение Rails плавно перемещается между средой разработки и производством?

1 Ответ

5 голосов
/ 17 сентября 2011

Heroku предоставляет URL базы данных, к которой вы можете подключиться через переменную окружения DATABASE_URL.Вот соответствующий раздел документов Heroku Dev Center .

Использование базы данных 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));
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...