2014-02-28 9 views

Antwort

1

Mein Verständnis ist, alembic läuft innerhalb einer Transaktion für Datenbanken, die es, wie Postgres unterstützen. Wenn Sie auf einer Datenbank sind, die nicht unterstützt dies (Husten MySQL Husten), können Sie diese Funktion nicht nutzen können.

+1

Warum wird es nicht in der Transaktion in MySQL –

+1

MySQL DDL-Befehlen wie 'ALTE/run CREATE/DROP TABLE' automatisch alle laufenden Transaktionen, so ist es in der Regel "sicherer" (zumindest vorhersehbarer) Transaktionen überhaupt nicht zu verwenden. Mit anderen Worten, Schemaänderungen sind in Transaktionen nicht enthalten. –

1

, dass etwas Sie im env.py entscheiden können, was ist, wo Sie das Verhalten der Migrationen anpassen Ihr Setup anpassen. Sie können sehen, wie Ihre Upgrades in einer Transaktion aus der Vorlage geschehen, um sicherzustellen, als Beispiel für generische Datenbanken zur Verfügung gestellt: https://github.com/zzzeek/alembic/blob/eaaafbca88f85f5432e04affe1f94cbf1ad06080/alembic/templates/generic/env.py#L64

def run_migrations_online(): 
    ... 
    with context.begin_transaction(): 
     context.run_migrations() 
Verwandte Themen