IT-Expert
  IT-Expert / Веблог / Слегка доработанный capistrano recipe для получения дампа рабочей базы локально
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2009 год
 за 2008 год
 за 2007 год
 за 2006 год
 за 2005 год
RSS лента Лента новостей IT-Expert 
Лента подкастов IT-Expert IT-Expert audiopodcasts

Слегка доработанный capistrano recipe для получения дампа рабочей базы локально

13:04, 28 июля 2008 ( Web Development Ruby Rails  )

Довольно часто данные изменяются на продакшн-сервере, и обычно хочется экспериментировать над свежей копией данных в своем rails приложении.

Тем, кто пользуется для разворачивания приложений capistrano есть хорошая новость: сделать такую вещь весьма несложно.

Итак, у нас в production FreeBSD 7.0, для разработки пользуемся рабочей станцией с ubuntu 8.04.

Рецепт capistrano слегка модифицированный взят отсюда: http://programmingishard.com/code/495

добавляем в config/deploy.rrb

 desc "Load production data into development database"
task :load_production_data, :roles => :db, :only => { :primary => true } do
  require 'yaml'
 
  database = YAML::load_file('config/database.yml')
 
  filename = "dump.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql"
  on_rollback { delete "/tmp/#{filename}" }
 
  run "mysqldump -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} > /tmp/#{filename}" do |channel, stream, data|
    puts data
  end
  get "/tmp/#{filename}", filename
#  exec "/tmp/#{filename}"
  exec "mysql -u #{database['development']['username']} --password=#{database['development']['password']} #{database['development']['database']} < #{filename}; rm -f #{filename}"
end

после чего пользуемся:

cap load_production_data

и вуаля, свежая копия базы с production у нас в development!


Оставить комментарий
© Nexus 2005-2009 Rambler Top100 О сервере