我有一个在Digital Ocean小滴上运行的简单Rails应用程序,现在我想添加功能以定期备份(单个)数据库。
我了解这通常是在Rails中使用Backup
和Whenever
宝石完成的,例如http://vladigleba.com/blog/2014/06/30/backup-a-rails-database-with-the-backup-and-whenever-gems/
以上教程带您完成以下过程:首先在服务器上安装gem,然后编辑生成的文件以适合您的需求,然后简要考虑如何在开发机器上本地复制更改并将将来的更改推送到实时服务器。
上述过程似乎有些倒退,相反,我想先在本地创建文件,然后再将其推送到实时服务器。
到目前为止(本地):
Backup
-gem install backup -v5.0.0.beta.2
的Rails 5兼容版本backup generate:model --trigger=db_backup --databases="postgresql" --storages="local" --compressor="gzip" --notifiers="mail"
这会在用户的根目录中自动创建一个新文件夹(备份),我已将此新文件夹移到我的rails应用程序中的Config
文件夹中EDITOR="sublime --wait" bin/rails credentials:edit
的用户名,密码等详细信息,并以Rails.application.credentials.database_password
形式引用变量/ li>
我现在希望让自己放心,在将更改推送到我的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选项指定您的路径 配置文件。模型将放置在models /目录中 配置文件所在的位置。
$ backup generate:model --config-file='/path/to/my_config.rb' --trigger my_backup (etc...)
请有人建议就此“备份”文件夹的位置提出最佳做法/最佳做法,特别是确保可以将其轻松推送到服务器,并确保其在服务器上的位置很容易引用。
很抱歉,如果这是一个愚蠢的问题,但是我尝试过与以前的任务“按照我自己的方式做事”(并将自己束缚在结中),我很乐于从他人的经验中学习如何最好做到整洁
答案 0 :(得分:0)
运行app.settings.saveSetting(sectionName, {"keyName": value, "keyName": value, "keyName": value, "keyName": value});
后,您将备份配置文件夹从用户目录backup generate:model
移到了Rails应用'/Users/myname/Backup/'
的配置目录中。因此,如果这是正确的,则应该可以通过使用'/my_rails_app/config/Backup'
选项指定配置文件的新位置来执行备份。
代替
--config-file
你应该做的
backup perform -t db_backup