Skip to content

Anadea/leipreachan

Repository files navigation

Leipreachan

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

Установка

Добавьте эту строку в ваш Gemfile:

gem 'leipreachan'

После этого запустите:

$ bundle

Или установите вручную:

$ gem install leipreachan

Использование

Capistrano 2/3

Для создания резервных копий с помощью Capistrano 3 добавьте в ваш 'Capfile' эту строку:

require 'leipreachan/capistrano3'

В случае Capistrano 2 необходимо в файл 'deploy.rb' добавить эту строку:

require 'leipreachan/capistrano2'

Это добавит следующие задачи в Capistrano:

cap deploy:leipreachan:backup      # Backup database
cap deploy:leipreachan:list        # List of backups
cap deploy:leipreachan:restore     # Restore database

Если вы хотите создать резервную копию в процессе деплоя приложения вам необходимо добавить эту строку в 'deploy.rb':

before "deploy:migrate", "deploy:leipreachan:backup"

Резервная копия будет создана перед миграциями базы данных.

По умолчанию резервная копия создается в 'shared/backups', но если у вас есть необходимость установить свой каталог, это можно сделать с помощью переменной 'backups_folder':

set :backups_folder, '../../current'

Gem берет за основу каталог с релизом. Учтите это при установке каталога резервных копий.

Для восстановления сделанного бекапа необходимо запустить:

$ cap [environment] deploy:leipreachan:restore

ВНИМЕНИЕ!!! Восстанавливается последняя сделанная резервная копия.

Интергация в Whenever

Просто добавьте эти строки в ваш 'config/schedule.rb':

  every 1.day, :at => '4:30 am' do
    rake "leipreachan:backup"
  end

Так же вы можете изменить каталог, куда будут складываться резервные копии. По умолчанию они складываются в './backups', т.е. создается каталог backups в корневом каталоге приложения.

  every 1.month, do
    rake "leipreachan:backup DIR=/tmp/database_backups"
  end

Есть возможность указать сколько дней хранить резервные копии (обратите внимание, что эта настройка не распространяется на количество резервных копий внутри каталога дня; каждый день их может храниться неограниченное количество). По умолчанию хранится 30 каталогов, разбитых по датам.

  every 5.days, do
    rake "leipreachan:backup DAYS=5"
  end

Использование Rake задач

Для работы с резервными копиями базы данных есть неколько rake задач:

rake leipreachan:backup   # Backup project database; Options: DIR=backups RAILS_ENV=production DAYS=30
rake leipreachan:list     # List of all backups; Options: DATE=20150130
rake leipreachan:restore  # Restore project database; Options: DIR=backups RAILS_ENV=production

leipreachan:backup - создаст резервную копию базы данных. leipreachan:list - выведет список дней и бекапов в последнем дне. leipreachan:restore - восстановит базу данных из резервной копии.

Опции, которые можно передать из окружения:

  • DIR - каталог, куда необходимо сохранить резервную копию
  • DATE - показать резервные копии на определенную дату
  • DAYS - сколько дней хранить резервные копии

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published