Режим песочницы консоли Rails не откатывается при выходе из проекта, который подключается к нескольким БД - PullRequest
0 голосов
/ 03 сентября 2018

Я использую Rails5 и подключаю несколько БД из одного проекта. (Определив новый database.yml для дополнительной БД. Как написано в https://medium.com/alturasoluciones/using-multiple-databases-on-rails-74ba29a2a840)

Когда я использую

bundle exec rails c --sandobx

основная БД, определенная в config/database.yml, откатывается, а лишняя БД - нет. Нужно ли добавлять дополнительные конфигурации для включения режима песочницы?

1 Ответ

0 голосов
/ 05 сентября 2018

Кажется, опция --sandbox по умолчанию не связывает ваше пользовательское соединение с БД транзакцией. Так что вы должны сделать это самостоятельно.

ref: active_record / railties / console_sandbox.rb

Вы можете написать пользовательский параметр консоли в файле конфигурации приложения, поэтому попробуйте что-то вроде этого:

# config/environments/development.rb

console do |app|
  if app.sandbox?
    CacheBase.connection.begin_transaction(joinable: false)
    at_exit do
      CacheBase.connection.rollback_transaction
    end
  end
end

Я не пробовал себя (потому что есть много, чтобы настроить второй дБ, как у вас ...), но я надеюсь, что это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...