В настоящее время я работаю с огромным приложением rails и несколькими ветвями, каждая из которых представляет собой новую функцию для этого приложения. Бывает, что функция потребует миграции, что не должно быть проблемой, пока вы не объедините ее с мастером: 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.
Невозможно сбросить + заполнить базу данных перед каждой миграцией в ветке или создать базу данных для каждой ветки. Из-за огромного размера данных SQL в 2 ГБ это будет невозможно.
Мой вопрос:
Действительно ли необходимо хранить schema.rb в репозитории, поскольку он перестраивается при каждой миграции?
Если да, то можно ли построить схему на основе миграций вместо дампа базы данных?