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

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

82 голоса | спросил phillee 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2009 03:51:46 +0400 2009, 03:51:46

5 ответов


0

Сначала переместите 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 [email protected]_server.com:/path_to_rails_app/shared/config/database.yml
ответил James A. Rosen 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2009 06:17:52 +0400 2009, 06:17:52
0

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

set :linked_files, %w{config/database.yml}
ответил Martin Sommer 11 Maypm14 2014, 21:17:30
0

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

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

ответил Sam DeFabbia-Kane 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2009 03:56:26 +0400 2009, 03:56:26
0

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

http://www.simonecarletti.com/blog /2009/06 /Capistrano-и-база-ут /

ответил Paul Alexander 2 MarpmWed, 02 Mar 2011 23:47:19 +03002011-03-02T23:47:19+03:0011 2011, 23:47:19
0

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

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

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

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

ответил smugglerFlynn 16 J000000Wednesday14 2014, 11:32:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132