Разветвление Git, запуск миграций и поддержание функциональности схемы - PullRequest
0 голосов
/ 05 января 2012

Я довольно новичок в git, и я начал использовать несколько веток для создания различных функций одновременно, используя такие команды, как git branch, git checkout и т. Д.

Вот список шагов, которые я имеюпринято:

git checkout feature1
make some changes that include migrations
rake db:migrate
rake db:commit to feature1 with schema.rb

git checkout feature2
# at this point my schema appears to revert to pre-feature1
make some changes that involve a new migration
rake db:migrate
# schema now shows changes from BOTH feature1 and feature2.

Акт запуска rake db:migrate в feature2 обновляет схему, которая, как мне кажется, отражает мою локальную базу данных, которая лежит в основе как feature1, так и feature2.Знаете ли вы, что я могу сделать, чтобы эти миграции были раздельными, чтобы у каждой функции была своя собственная схема, или есть другой способ обработки разветвленных миграций?

1 Ответ

0 голосов
/ 05 января 2012

подумайте о своем рабочем процессе. В ветке feature1 есть файл schema.rb из feature1, но если вы использовали sqlite, ваша база данных была обновлена ​​в ветке feature2. Если вы внесли изменения в Feature2, которые нарушают работу вашего приложения в Feature1, вам необходимо перестроить базу данных для Feature1.

Если вы не хотите перестраивать свою базу данных, вам нужно настроить приложение rails на использование другой базы данных перед запуском миграции в ветке feature2.

edit: Другая возможность - добавить вашу базу данных в git (изменив файл .gitignore и добавив его в репозиторий). Затем вы можете восстановить свою базу данных с помощью git.

...