Большинство обсуждений развертывания базы данных Rails предполагают, что существует два аспекта базы данных: схема, которая обрабатывается в коде посредством миграций, и данные, которые все генерируются пользователем и никогда не нуждаются в переходе из тестовой в производственную. А что насчет того, что находится между ними?
Например, у нас есть ряд в основном статических таблиц, которые содержат сложные опросы, которые могут принимать наши пользователи: вопросы, варианты выбора, ветвления. Мы хотим иметь возможность редактировать эти опросы через наше веб-приложение, но мы хотим иметь возможность тестировать изменения на промежуточном сервере, прежде чем мы отправим их в производство.
Какой хороший способ справиться с этим в Rails, который хочет, чтобы все модели существовали в одной базе данных, и, конечно же, не хочет, чтобы одна и та же модель (с разным содержимым) существовала в двух базах данных? Есть ли какие-нибудь хорошие обсуждения в Интернете или какие-то жемчужины, абстрагирующие этот тип функциональности?
Я работал с большой сложной системой CMS, которая имела собственный контроль версий и развертывание в нескольких средах, поэтому вы могли развернуть свое изменение в тестовой системе (без рискованного связывания тестовой и производственной баз данных), тщательно протестировать его, а затем выполнить развертывание в производство одним щелчком мыши. Думаю, я ищу что-то подобное в меньшем масштабе.