Как работать с Rails database.yml - PullRequest
       44

Как работать с Rails database.yml

82 голосов
/ 20 сентября 2009

Как лучше всего обрабатывать Rails database.yml, если над проектом работают несколько человек, а расположение баз данных отличается (в частности, от сокета).

Ответы [ 5 ]

160 голосов
/ 20 сентября 2009

Сначала переместите database.yml в файл шаблона.

Если вы на Git:

git mv config/database.yml config/database.yml.example
git commit -m "moved database.yml to an example file"

Или, если вы находитесь на Subversion:

svn move config/database.yml config/database.yml.example
svn ci -m "moved database.yml to an example file"

Во-вторых, игнорируйте версию .yml.

Если вы на Git:

cat > .gitignore
config/database.yml

git add .gitignore
git commit -m "ignored database.yml"

Если вы находитесь на Subversion:

svn propset svn:ignore config "database.yml"

В-третьих, установить Где находится ваш database.yml, чувак? :

script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude

Этот плагин предупреждает разработчиков перед выполнением любых задач Rake, если они не создали свою собственную локальную версию config/database.yml.

В-четвертых, настройте задачу развертывания Capistrano:

# in RAILS_ROOT/config/deploy.rb:
after 'deploy:update_code', 'deploy:symlink_db'

namespace :deploy do
  desc "Symlinks the database.yml"
  task :symlink_db, :roles => :app do
    run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
  end
end

В-пятых, загрузите версию сервера database.yml:

scp config/database.yml user@my_server.com:/path_to_rails_app/shared/config/database.yml
16 голосов
/ 11 мая 2014

В Capistrano 3 вместо добавления нового задания вы можете просто сделать:

set :linked_files, %w{config/database.yml}
2 голосов
/ 02 марта 2011

Еще один метод, использующий capistrano ERb для запроса учетных данных во время развертывания.

http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/

2 голосов
/ 20 сентября 2009

Вы можете использовать свойство svn: ignore для предотвращения создания версий этого файла.

Инструкции здесь.

0 голосов
/ 16 июля 2014

В дополнение к ответам выше, я написал грабли, похожие на «Где ваш database.yml, чувак?», Но позволяющий сохранить примеры шаблонов любого файла конфигурации. Проверьте это: https://github.com/Velid/exemplify

В качестве альтернативы написанию отдельных рабочих конфигураций и связыванию их через Capistrano, я бы также предложил использовать переменные среды для ваших учетных данных:

password: <%= ENV['PROD_DATABASE_PASSWORD'] %>

Существует множество удобных инструментов и способов , позволяющих сделать это в любой момент.

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