diff options
author | markbmc@gmail.com <unknown> | 2011-10-28 09:34:08 +0200 |
---|---|---|
committer | markbmc@gmail.com <unknown> | 2011-10-28 09:34:08 +0200 |
commit | 6ecf665f1467f0667e1c3ed910ae028b5caf1262 (patch) | |
tree | 913c14b701b9bee189f98d572ced0184616056ed /migrate | |
parent | b38c0fb2ccb508109b075c7a425acc21d5d2a941 (diff) | |
download | sqalchemy-migrate-6ecf665f1467f0667e1c3ed910ae028b5caf1262.tar.gz |
fix issue 128: "table rename failure with sqlalchemy 0.7.x"
Diffstat (limited to 'migrate')
-rw-r--r-- | migrate/changeset/schema.py | 8 | ||||
-rw-r--r-- | migrate/tests/changeset/test_changeset.py | 10 |
2 files changed, 10 insertions, 8 deletions
diff --git a/migrate/changeset/schema.py b/migrate/changeset/schema.py index f4377ba..c8ce23f 100644 --- a/migrate/changeset/schema.py +++ b/migrate/changeset/schema.py @@ -468,15 +468,9 @@ class ChangesetTable(object): self.deregister() self._set_parent(self.metadata) - def _meta_key(self): - return sqlalchemy.schema._get_table_key(self.name, self.schema) - def deregister(self): """Remove this table from its metadata""" - key = self._meta_key() - meta = self.metadata - if key in meta.tables: - del meta.tables[key] + self.metadata._remove_table(self.name, self.schema) class ChangesetColumn(object): diff --git a/migrate/tests/changeset/test_changeset.py b/migrate/tests/changeset/test_changeset.py index ffadcdb..d4dae7a 100644 --- a/migrate/tests/changeset/test_changeset.py +++ b/migrate/tests/changeset/test_changeset.py @@ -508,10 +508,18 @@ class TestRename(fixture.DB): # object is inconsistent self.index.name = expected # TODO: Index DB check - + + def add_table_to_meta(name): + # trigger the case where table_name2 needs to be + # removed from the metadata in ChangesetTable.deregister() + tmp = Table(name, self.meta, Column(c_name, Integer)) + tmp.create() + tmp.drop() + try: # Table renames assert_table_name(table_name1) + add_table_to_meta(table_name2) rename_table(self.table, table_name2) assert_table_name(table_name2) self.table.rename(table_name1) |