В настоящее время я работаю с огромным рельсовым приложением и несколькими ветвями с каждой новой функцией для этого приложения. Это случается очень часто, когда функция требует миграции, которая не должна быть проблемой, пока вы не объедините ее с мастером: schema.rb обновлен с информацией о вашей базе данных разработчиков!
Чтобы уточнить:
1. Branch A has migration create_table_x
2. Branch B has migration create_table_y
3. Branch A adds another create_table_z and runs db:migrate
4. You want to merge Branch A with Master and you see table_x, table_y and table_z in the schema.rb of Branch A.
Это не опция reset + засеять базу данных до каждой миграции в ветке или создать базу данных для каждой ветки. Из-за огромного размера данных объемом 2 ГБ SQL это не будет работоспособным.
Мой вопрос:
Действительно ли требуется сохранить schema.rb в репозитории, поскольку он перестраивает каждую миграцию?
Если да, возможно ли построить схему с миграций вместо дампа базы данных?