在rails 4中进行数据库备份

Ale*_*nko 13 ruby-on-rails database-backups ruby-on-rails-4

有一个,gem db2fog但它只适用于Rails 3.
是否有适合在Rails 4中进行数据库备份?

mar*_*ets 25

看看备份宝石.它提供了一系列非常好的功能,例如:

  • 数据库支持:MySQL,MongoDB,PostgreSQL,Redis ......
  • 压缩
  • 加密
  • 存储:Amazon S3,本地,RSync,Dropbox ......
  • 通知者:电子邮件,Twitter,Hipchat ......
  • 友好的DSL

该插件完全独立Rails,因此您可以将其用于其他应用程序.

备份模型示例(MySQL,Amazon,Gzip和电子邮件通知):

Model.new(:my_backup, 'My backup description') do
  database MySQL do |db|
    db.name     = "database_name"
    db.username = "username"
    db.password = "pass"
    db.host     = "localhost"
    db.port     = 3306
  end

  store_with S3 do |s3|
    s3.access_key_id     = "access_key_id"
    s3.secret_access_key = "secret_access_key"
    s3.bucket            = "bucket_name"
    s3.path              = "path/to/your/backups"
  end

  compress_with Gzip

  notify_by Mail do |mail|
    mail.on_success     = true
    mail.on_warning     = true
    mail.on_failure     = true

    mail.from           = "sender@email.com"
    mail.to             = "receiver@email.com"
    mail.address        = "smtp.gmail.com"
    mail.port           = 587
    mail.domain         = "your.host.name"
    mail.user_name      = "sender@email.com"
    mail.password       = "pass"
    mail.authentication = "plain"
  end
end
Run Code Online (Sandbox Code Playgroud)

执行备份:

$ backup perform --trigger my_backup
Run Code Online (Sandbox Code Playgroud)

使用cron作业安排备份(例如使用whenevergem),您将获得一个简单有效的解决方案:

every 1.day, :at => '1:00 am' do
  command "backup perform --trigger my_backup"
end
Run Code Online (Sandbox Code Playgroud)

希望这可以帮到你.