First migration fix: commit after each migration.
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Thu, 14 Jun 2012 19:57:24 +0000 (21:57 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Thu, 14 Jun 2012 19:57:24 +0000 (21:57 +0200)
sqlite doesn't like complex changes (alter table) to happen
inside a transaction that has already done other things.
And really, each migration should say "I'm done" and commit
its changes.

This is not the full story, but it's the core of it.

Specifially the migration framework should probably do a
rollback "just in case" after each migration.

mediagoblin/db/sql/migrations.py

index 453801a516fb5df60d1abf98e3074feec67ab143..d6b709b2c483c0f392c7627e5a5c37c07f1ceb79 100644 (file)
@@ -33,6 +33,7 @@ def ogg_to_webm_audio(db_conn):
         file_keynames.update().where(file_keynames.c.name == 'ogg').
             values(name='webm_audio')
     )
+    db_conn.commit()
 
 
 @RegisterMigration(2, MIGRATIONS)
@@ -45,3 +46,4 @@ def add_wants_notification_column(db_conn):
     col = Column('wants_comment_notification', Boolean,
             default=True, nullable=True)
     col.create(users, populate_defaults=True)
+    db_conn.commit()