Give a more useful error if a table already exists and so we can't create it during migrations

This commit sponsored by Andrzej Prochyra.  Thanks!
This commit is contained in:
Christopher Allan Webber 2013-03-04 10:57:21 -06:00
parent 17e4679ddc
commit 7e4a87dca5

View File

@ -17,6 +17,9 @@
from mediagoblin.tools.common import simple_printer from mediagoblin.tools.common import simple_printer
from sqlalchemy import Table from sqlalchemy import Table
class TableAlreadyExists(Exception):
pass
class MigrationManager(object): class MigrationManager(object):
""" """
@ -128,7 +131,10 @@ class MigrationManager(object):
# sanity check before we proceed, none of these should be created # sanity check before we proceed, none of these should be created
for model in self.models: for model in self.models:
# Maybe in the future just print out a "Yikes!" or something? # Maybe in the future just print out a "Yikes!" or something?
assert not model.__table__.exists(self.session.bind) if model.__table__.exists(self.session.bind):
raise TableAlreadyExists(
u"Intended to create table '%s' but it already exists" %
model.__table__.name)
self.migration_model.metadata.create_all( self.migration_model.metadata.create_all(
self.session.bind, self.session.bind,