Как я могу спроектировать свое приложение для обратного тестирования данных в Rails?

#ruby-on-rails #ruby #quantitative-finance #back-testing

#ruby-on-rails #ruby #количественный-финансы #обратное тестирование

Вопрос:

Я хочу протестировать некоторые данные, я бы хотел, чтобы результаты моего тестирования и анализа были вкладом в решения моего приложения.

Я думал о дублировании модели / таблицы и для целей выполнения моего обратного тестирования и анализа, но тогда я удвоил бы свою рабочую нагрузку и не был бы особенно масштабируемым.

Возможно ли динамически переключать среду rails для конкретного конкретного класса? Т.е. Создайте класс BacktestingService, любое чтение / запись базы данных выполняется в «тестовую» базу данных, в то время как остальная часть приложения продолжает использовать среду разработки / производства?

Можете ли вы предложить какие-либо другие решения для моего варианта использования?

Комментарии:

1. В руководствах Rails есть статья о нескольких базах данных с активной записью .

2. @spickermann Если я правильно прочитал документы, «Использование ручного переключения соединений» подходит для моего варианта использования?

Ответ №1:

Используя connected_to, я могу переключиться на другую базу данных (в данном случае :test ), выполнить обратное тестирование и анализ в блоке connected_to:

  ActiveRecord::Base.connected_to(database: :test) do
    backtest stuff here
 end

 

За пределами блока я могу использовать свою базу данных по умолчанию.

Я нашел это полезным: https://prathamesh.tech/2019/08/13/rails-6-multi-database-part-two /