summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDustin J. Mitchell <dustin@mozilla.com>2011-07-10 21:21:43 -0500
committerDustin J. Mitchell <dustin@mozilla.com>2011-07-10 21:21:43 -0500
commite7195ffbf4684f2beb6b974dbca6cac527451992 (patch)
tree9137103efd5fa7f07e604ec5dce04858ce36e6db
parenta1968e7f7da37a104555581bcab4fb01df90e5a5 (diff)
downloadsqalchemy-migrate-e7195ffbf4684f2beb6b974dbca6cac527451992.tar.gz
Fix issue 124: ignore sqlite_sequence in comparing db to model
-rw-r--r--migrate/versioning/schemadiff.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/migrate/versioning/schemadiff.py b/migrate/versioning/schemadiff.py
index 77661d3..b30c015 100644
--- a/migrate/versioning/schemadiff.py
+++ b/migrate/versioning/schemadiff.py
@@ -17,8 +17,16 @@ def getDiffOfModelAgainstDatabase(metadata, engine, excludeTables=None):
:return: object which will evaluate to :keyword:`True` if there \
are differences else :keyword:`False`.
"""
- return SchemaDiff(metadata,
- sqlalchemy.MetaData(engine, reflect=True),
+ db_metadata = sqlalchemy.MetaData(engine, reflect=True)
+
+ # sqlite will include a dynamically generated 'sqlite_sequence' table if
+ # there are autoincrement sequences in the database; this should not be
+ # compared.
+ if engine.dialect.name == 'sqlite':
+ if 'sqlite_sequence' in db_metadata.tables:
+ db_metadata.remove(db_metadata.tables['sqlite_sequence'])
+
+ return SchemaDiff(metadata, db_metadata,
labelA='model',
labelB='database',
excludeTables=excludeTables)