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


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

Ключевые слова:
Записей в блоге
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 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!


      Оставить комментарий
      © Максим Прокопов 2005-2016 О сервере