Rails 5 中的备份 gem - 推荐做法



我有一个简单的rails应用程序在Digital Ocean droplet上运行,我现在想添加功能来定期备份(单个(数据库。

我知道这通常是使用 Rails 中的BackupWhenever宝石完成的,例如 http://vladigleba.com/blog/2014/06/30/backup-a-rails-database-with-the-backup-and-whenever-gems/

上面的教程将引导您完成首先在服务器上安装 gem 并编辑生成的文件以满足您的需求的过程,然后简要考虑如何在开发计算机上本地复制更改并将未来的更改推送到实时服务器。

上面的过程似乎有些倒退,相反,我想先在本地创建文件,然后再将它们推送到实时服务器。

到目前为止,我有(本地(:

  • 已安装 Rails 5 兼容版本的Backup-gem install backup -v5.0.0.beta.2
  • 已生成备份配置文件 -backup generate:model --trigger=db_backup --databases="postgresql" --storages="local" --compressor="gzip" --notifiers="mail"这会自动在用户的根目录中创建一个新文件夹(备份(,我已将此新文件夹移动到我的 rails 应用程序中的Config文件夹中
  • 编辑了我的 credentials.yml.enc 文件的内容,以包括我的 Postgres 数据库和电子邮件客户端的用户名、密码等的详细信息 -EDITOR="sublime --wait" bin/rails credentials:edit和引用Rails.application.credentials.database_password形式的变量

我现在希望向自己保证,在将更改推送到我的 Git 存储库和实时站点之前,这在我的本地环境中工作得很好。但是,当我尝试backup perform -t db_backup时,出现了以下错误Config::Error: Could not find configuration file: '/Users/myname/Backup/config.rb'

有关Backup宝石 (http://backup.github.io/backup/v4/generator/( 的文档指出:

如果要更改模型文件所在的路径 生成,使用 --config-file 选项指定路径 配置文件。模型将被放入模型/目录中 配置文件所在的位置。

$ backup generate:model --config-file='/path/to/my_config.rb' --trigger my_backup (etc...)

请有人建议在此备份文件夹的位置方面被视为良好/最佳实践,特别是确保可以轻松地将其推送到服务器,并且可以轻松引用其在服务器上的位置。

对不起,如果这是一个愚蠢的问题,但是在尝试过"边做边编"以前的任务(并将自己打结(之后,我很想从其他人的经验中学习如何最好地完成这项工作

运行backup generate:model后,您将备份配置文件夹从用户目录'/Users/myname/Backup/'移动到 rails 应用程序的配置目录中,'/my_rails_app/config/Backup'.因此,如果这是正确的,您应该能够通过使用--config-file选项指定配置文件的新位置来执行备份。

而不是

backup perform -t db_backup

你应该做的

backup perform -t db_backup --config-file 'my_rails_app/config/Backup/config.rb'

最新更新