2014-03-12 2 views
8

Ich habe eine Anwendung auf Flasche bauen und ich wollte eine neue Migration für sie heute erstellen. Als ichAlembic Revision - mehrere Köpfe (wegen Verzweigung) Fehler

$ alembic revision -m "__name__" 

laufen bekam ich eine Nachricht

Only a single head is supported. The script directory has multiple heads (due branching), which must be resolved by manually editing the revision files to form a linear sequence. 
Run `alembic branches` to see the divergence(s). 

Lauf

alembic branches 

nichts

gibt ich bin neu & alembic in den Kolben. Es gibt 2 Entwickler, die an dieser App arbeiten und wir haben 2 Git-Zweige - Master & entwickeln (ich bin mir nicht sicher, ob das etwas damit zu tun hat).

Irgendwelche Ahnung worum es geht?

Antwort

4

Ich habe

laufen
$ python manage.py db history 

Und als Ergebnis bekam ich

[email protected]:/vagrant$ python manage.py db history 

Rev: 29c319804087 (head) 
Parent: 313837798149 
Path: migrations/versions/29c319804087_.py 

    empty message 

    Revision ID: 29c319804087 
    Revises: 313837798149 
    Create Date: 2014-03-05 21:26:32.538027 

Rev: 313837798149 
Parent: 280061454d2a 
Path: migrations/versions/313837798149_.py 

    empty message 

    Revision ID: 313837798149 
    Revises: 280061454d2a 
    Create Date: 2014-01-10 03:19:39.838932 

Rev: 280061454d2a 
Parent: None 
Path: migrations/versions/280061454d2a_.py 

    empty message 

    Revision ID: 280061454d2a 
    Revises: None 
    Create Date: 2013-12-08 03:04:55.885033 


Rev: 2e74f61d3b80 (head) 
Parent: 49501407aec9 
Path: migrations/versions/2e74f61d3b80_o2_lease.py 

    o2 lease 

    Revision ID: 2e74f61d3b80 
    Revises: 49501407aec9 
    Create Date: 2014-02-28 10:38:06.187420 

Rev: 49501407aec9 
Parent: None 
Path: migrations/versions/49501407aec9_.py 

    empty message 

    Revision ID: 49501407aec9 
    Revises: None 
    Create Date: 2014-01-22 11:27:08.002187 

Was können Sie hier sehen, ist 2 verschiedene Zweige. Man startet von 49501407aec9 und zweite von 280061454d2a. Ich zog 49501407aec9 und die folgende 2e74f61d3b80 aus dem/Versionen Verzeichnis, führen

$ python manage.py db revision 

und es erstellt eine neue Migrationsdatei.

9

Dieses Problem tritt auf, wenn zwei Alembic-Migrationen von derselben Migration abgezweigt werden. In der Regel tritt dies auf, wenn mehrere Personen Schemaänderungen vornehmen. Um es zu beheben, müssen Sie nur die down_revision Ihrer Migration auf die neueste anpassen. Laufen alembic history zeigt uns dies:

2f4682466279 -> f34e92e9dc54 (head), Fifth revision (on a separate branch) 
 
2f4682466279 -> f673ac37b34a (head), Fifth revision (local) 
 
2dc9337c3987 -> 2f4682466279, Fourth revision 
 
0fa2aed0866a -> 2dc9337c3987, Third revision 
 
22af4a75cf06 -> 0fa2aed0866a, Second revision 
 
9a8942e953eb -> 22af4a75cf06, First revision

Sie können sehen, dass einer der Fünften Revisionen vor Ort gemacht wurde, und es ist nachgeschaltete Revision ist 2f4682466279 aber wer hat die andere Fünfte Revision auch die gleiche Downstream-Revision bekam .

Gehen Sie in einer der Fünften Revisionsdateien und aktualisieren down_revision Variable die andere Fünfte Revision, wie diese zu verweisen:

f673ac37b34a -> f34e92e9dc54 (head), Fifth revision (on a separate branch) 
 
2f4682466279 -> f673ac37b34a, Fifth revision (local) 
 
2dc9337c3987 -> 2f4682466279, Fourth revision 
 
0fa2aed0866a -> 2dc9337c3987, Third revision 
 
22af4a75cf06 -> 0fa2aed0866a, Second revision 
 
9a8942e953eb -> 22af4a75cf06, First revision

In diesem Fall habe ich Migration aktualisiert f34e92e9dc54down_revision='f673ac37b34a' zu haben.

Verwandte Themen