Кто-нибудь сумел заставить гем Backup
работать в Rails 5.2 и получать информацию из credentials.yml.enc
?
У меня есть приложение Rails, которое было написано с нуля в Rails 5.2 и имеет базу данных PostgreSQLподкрепляя это.Я хотел бы иметь автоматическое резервное копирование базы данных, которое в настоящее время планирую сделать с использованием гемов Backup
и Whenever
.
Я установил гем backup
и сгенерировал файлы конфигурации:
gem install backup -v5.0.0.beta.2
backup generate:model --trigger=db_backup --databases="postgresql" --storages="local" --compressor="gzip" --notifiers="mail"
Затем я переместил папку резервного копирования, созданную из корневого каталога на моем компьютере разработчика, в папку конфигурации приложения.
Если я жестко закодирую все параметры в файле db_backup.rb
, я могу успешновыполнить резервное копирование базы данных разработки через командную строку с помощью:
backup perform -t db_backup --config-file 'my_rails_app/config/Backup/config.rb'
Однако, если я настраиваю одну строку в моем db_backup.rb
с db.username = my_username
до db.username = Rails.application.credentials.username
, я получаю следующую ошибку:
NameError: uninitialized constant #<Class:#<Backup::Config::DSL:0x00007fb0db941d10>>::Rails
Я создал очень простой db_backup.rb
для проверки этого - приведенный ниже код работает нормально, если значение жестко закодировано, если оно ссылается на файл учетных данных. Я получаю сообщение об ошибке выше:
Model.new(:db_backup, 'Description for db_backup') do
##
# PostgreSQL [Database]
#
database PostgreSQL do |db|
db.username = Rails.application.credentials.username
end
end
Предыдущие сообщения, которые я поместил в StackOverflow ( Ruby on Rails: Различия в поведении в консоли / в файле .rb ) определили, что проблемаlem вызван тем, что гем backup
устанавливается внешне в приложение Rails (как предлагается в их документации).Я попытался вызвать скрипт backup
из файла rake, но он ошибся с NameError: uninitialized constant Model
Может кто-нибудь предложить, как я могу запустить скрипт резервного копирования, а также получить значения параметров непосредственно из credentials.yml.enc