Развертывание в Heroku с конфиденциальной информацией о настройках - PullRequest
10 голосов
/ 03 июня 2010

Я использую GitHub для кода и Heroku для платформы развертывания для моего приложения rails.

Я не хочу хранить конфиденциальные данные в Git. К таким данным относятся параметры файла базы данных (database.yml) и некоторые другие файлы, которые имеют секретные ключи API.

Когда я развертываюсь на heroku, как я могу обращаться с файлами, которые не находятся под контролем ревизии.

Когда я использую Capistrano, я могу написать несколько методов ловушек, но я не знаю, что делать с Heroku.

Ответы [ 2 ]

20 голосов
/ 03 июня 2010

Для Heroku вам нужно иметь database.yml под Git, потому что Heroku автоматически прочитает его и создаст из него конфигурацию PostgreSQL.

Для другой важной информации, такой как ключи API, Heroku предоставляет config vars , которые фактически являются переменными среды. Вы можете добавить их, используя:

heroku config:add KEY=value

- и получите к ним доступ из своего приложения, используя:

ENV['KEY']

Обратите внимание, что конфигурационные переменные могут быть перечислены, добавлены и удалены с помощью программы командной строки heroku, и после установки они будут постоянными.

3 голосов
/ 03 июня 2010

Я бы создал локальную ветвь, назовем ее SECRET и сделал там «секретные» модификации. Зафиксируйте их и НЕ толкайте их на github.

Теперь просто оформите заказ и продолжайте работать над основной веткой до готовности к выпуску.

Чтобы подготовить релиз, извлекающий ветку SECRET, объедините основную ветвь с ней и протолкните ее к героку как обычно.

(Кстати: я всегда забываю переключиться обратно на рабочую ветку, в этом случае ваш друг - git stash)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...