Как лучше всего обрабатывать Rails database.yml, если над проектом работают несколько человек и расположение базы данных отличается (в частности, сокет).
mysql
ruby-on-rails
svn
Филли
источник
источник
Ответы:
Сначала перейдите
database.yml
к файлу шаблона.Если вы используете Git:
git mv config/database.yml config/database.yml.example git commit -m "moved database.yml to an example file"
Или, если вы используете Subversion:
Во-вторых, игнорируйте версию .yml.
Если вы используете Git:
cat > .gitignore config/database.yml git add .gitignore git commit -m "ignored database.yml"
Если вы используете Subversion:
В-третьих, установи Где твой 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:
источник
cat >> .gitignore
вместо него. Так как иначе выВ Capistrano 3 вместо добавления новой задачи вы можете просто сделать:
set :linked_files, %w{config/database.yml}
источник
Вы можете использовать свойство svn: ignore, чтобы предотвратить управление версиями этого файла.
Инструкции здесь.
источник
Еще один метод, использующий capistrano ERb для запроса учетных данных во время развертывания.
http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/
источник
В дополнение к приведенным выше ответам я написал задачу, похожую на «Где ваш database.yml, чувак?», Но позволяющую хранить примеры шаблонов любого файла конфигурации. Проверьте это: https://github.com/Velid/exemplify
В качестве альтернативы написанию отдельных производственных конфигураций и связыванию их через Capistrano я бы также предложил использовать переменные среды для ваших учетных данных:
Существует множество удобных инструментов и способов сделать это.
источник