rake db:dump - сливаем базу приложения на Ruby on Rails

December 2, 2010, revised January 1, 2011 gem rails_db_dump rake Ruby Ruby on Rails базы данных резервное копирование

Каждый раз, когда нужно слить базу приложения Ruby on Rails, приходится лезть в database.yml и смотреть пароль, разнося его по логам, буферу обмена и/или каналам связи.

Почему-то в поставке Ruby on Rails есть script/dbconsole, есть rake db:schema:dump, а rake db:dump нет.

Итак, я вчера написал обертку для mysqldump (или pg_dump, или sqlite), использующую настройки из database.yml для дампа базы - потому что так правильно и красиво. Обертка располагается в геме rails_db_dump и уставливается так:

Rails 3
# Gemfile
gem 'rails_db_dump'
Rails 2.3
# config/environment.rb
config.gem 'rails_db_dump'

# Rakefile
include 'rails_db_dump/tasks' rescue nil

После выполнения этих телодвижений появляется Rake-команда

rake db:dump

или, в полезном контексте

rake db:dump RAILS_ENV=production | gzip > dump.sql.gz

Проблема решена! Поздравляю всех с началом зимы.

Buy Me a Coffee at ko-fi.com