Как перебазировать вашу ветку мастером, у которого есть новые миграции схемы? Рельсы

У меня есть ветка, схема которой отличается от схемы моего мастера. Когда я пытаюсь сделать ребаз с мастером, я получаю ошибку конфликта слияния со схемами. Я понимаю, что это происходит потому, что моя схема на моей ветке отличается от схемы на моем хозяине. Это потому, что я работал над чем-то другим в другой ветке и должен был выполнить миграцию. Затем я объединил эту ветку со своим хозяином. Так что теперь у моего мастера есть новая таблица в схеме, над которой ветка, над которой я работаю, понятия не имеет. Поэтому, когда я пытаюсь сделать ребаз с мастером, возникает ошибка конфликта. Есть ли способ, чтобы ветвь автоматически сливалась и брала последнюю схему с мастера, когда я перебазировала? Я знаю, что есть фрагмент кода, который я могу поместить в свой конфигурационный файл и вызвать его в моем файле атрибутов, однако это решение, похоже, не работает для меня, так как мои миграции были сделаны до того, как я поместил этот код в конфигурационный файл.

3 ответа

Удалите файл схемы, примените миграцию, если таковые имеются на этом этапе ребазирования, сбросьте новую схему rails и git rebase --continue, Повторите при необходимости.

Если schema.rb (или любой файл в этом отношении) изменился, так как вы создали свою ветвь, тогда вам придется вручную объединить конфликт.

Конфликт возникает только тогда, когда в файле из обеих ветвей появляются новые изменения с одинаковыми номерами строк.

Выполнение ниже, как упомянуто в другом ответе, заставит вас потерять изменения, сделанные в вашей текущей ветке:

git rebase -Xtheirs the_branch_name

В случае schema.rb обычно строка номера версии вызывает конфликт. Вы всегда должны указывать большее количество двух версий:

ActiveRecord::Schema.define(version: 2017081234567)

Поскольку schema.rb генерируется автоматически после каждой миграции, самый простой способ разрешить конфликт - это удалить этот файл, запустить

rake db:drop db:create db:migrate

и зафиксируйте изменения.

Другие вопросы по тегам