2017-08-18 5 views
0

J'ai une branche qui a un schéma différent de celui de mon maître. Quand j'essaye de rebaser avec le maître, j'obtiens une erreur de conflit de fusion avec les schémas. Je comprends que cela se passe parce que mon schéma sur ma branche est différent de celui sur mon maître. C'est parce que je travaillais sur autre chose dans une autre branche et que j'ai dû faire des migrations. J'ai ensuite fusionné cette branche avec mon maître. Alors maintenant, mon maître a une nouvelle table dans le schéma que la branche sur laquelle je travaille n'a aucune idée. Donc quand j'essaye de rebaser avec le master cela me donne une erreur de conflit. Existe-t-il un moyen pour la branche de fusionner automatiquement et prendre le dernier schéma du maître lorsque je rebase? Je sais qu'il y a un extrait de code que je peux mettre dans mon fichier de configuration et l'appeler dans mon fichier d'attributs, cependant, cette solution ne semble pas fonctionner pour moi puisque mes migrations ont été faites avant que je mette ce code dans le fichier de configuration.Comment rebaser votre branche avec le maître qui a de nouvelles migrations de schéma? Rails

Répondre

0

Si schema.rb (ou n'importe quel fichier d'ailleurs) a changé depuis que vous avez créé votre branche, vous devrez fusionner manuellement le conflit.

Un conflit ne se produit que lorsque le fichier provenant des deux branches présente de nouveaux changements autour de mêmes numéros de ligne.

Faire ci-dessous comme mentionné dans une autre réponse serait vous faire perdre les modifications effectuées dans votre branche actuelle:

git rebase -Xtheirs the_branch_name 

En cas de schema.rb généralement la ligne de numéro de version lance le conflit. Vous devriez toujours mettre le nombre de deux versions plus:

ActiveRecord::Schema.define(version: 2017081234567) 
0

Depuis schema.rb est généré automatiquement après chaque migration, la façon la plus simple pour résoudre les conflits est de supprimer ce fichier, exécutez

rake db:drop db:create db:migrate 

et Commettre les changements.