fix issue 128: "table rename failure with sqlalchemy 0.7.x"

This commit is contained in:
markbmc@gmail.com 2011-10-28 09:34:08 +02:00
parent b38c0fb2cc
commit 6ecf665f14
2 changed files with 10 additions and 8 deletions

View File

@ -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):

View File

@ -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)