git - how to chain two migrations through migraions ids and to create a linear chain to collapse the branches? -


i deployed flask app heroku. when run command error.

heroku run python manage.py deploy  

this error message:

raise util.commanderror('only single head supported. ' alembic.util.commanderror: single head supported. script directory has multiple heads (due branching), must resolved manually editing revision files form linear sequence. run alembic branches see divergence(s).

ao googled it,then got this:

this happens when go revision not last , create new migration. have 2 branches, alembic cannot handle.look @ how migration files chained through migration ids, need create linear chain collapse branches.

but i'm still confused how solve that. think problem caused git branches. (i tried merge 2 branches, didn't work?)

looks quoted comment made long ago in 1 of blog articles. since then, have written article dedicated topic of resolving migration conflicts: http://blog.miguelgrinberg.com/post/resolving-database-schema-conflicts

this explained in article, basically, have edit migration scripts form linear sequence. each script has pointer predecessor, conflict occurs when have 2 or more scripts have same predecessor. have migrations b , c, both predecessor. this:

     --> b __/     \      --> c 

assuming @ migration b, c migration cannot applied because on different branch. 1 possible way address conflict change predecessor in c script b. migration chain becomes:

a --> b --> c 

so alembic can move b c.

another option, supported in recent versions of alembic use merge command create merge migration. cover briefly in article well, isn't preferred solution.


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -