diff options
author | Dustin J. Mitchell <dustin@mozilla.com> | 2011-07-10 21:21:43 -0500 |
---|---|---|
committer | Dustin J. Mitchell <dustin@mozilla.com> | 2011-07-10 21:21:43 -0500 |
commit | e7195ffbf4684f2beb6b974dbca6cac527451992 (patch) | |
tree | 9137103efd5fa7f07e604ec5dce04858ce36e6db /migrate | |
parent | a1968e7f7da37a104555581bcab4fb01df90e5a5 (diff) | |
download | sqalchemy-migrate-e7195ffbf4684f2beb6b974dbca6cac527451992.tar.gz |
Fix issue 124: ignore sqlite_sequence in comparing db to model
Diffstat (limited to 'migrate')
-rw-r--r-- | migrate/versioning/schemadiff.py | 12 |
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) |