:version: 0.7.10
:released:
+ .. change::
+ :tags: sql, bug
+ :tickets: 2643
+
+ Fixed bug where :meth:`.Table.tometadata` would fail if a
+ :class:`.Column` had both a foreign key as well as an
+ alternate ".key" name for the column.
+
.. change::
:tags: mssql, bug
:tickets: 2638
.. changelog::
:version: 0.8.0
+ .. change::
+ :tags: sql, bug
+ :tickets: 2643
+
+ Fixed bug where :meth:`.Table.tometadata` would fail if a
+ :class:`.Column` had both a foreign key as well as an
+ alternate ".key" name for the column. Also in 0.7.10.
+
.. change::
:tags: sql, bug
:tickets: 2629
def copy(self, schema=None, **kw):
fkc = ForeignKeyConstraint(
- [x.parent.name for x in self._elements.values()],
+ [x.parent.key for x in self._elements.values()],
[x._get_colspec(schema=schema) for x in self._elements.values()],
name=self.name,
onupdate=self.onupdate,
finally:
meta.drop_all(testing.db)
+ def test_col_key_fk_parent_tometadata(self):
+ # test #2643
+ m1 = MetaData()
+ a = Table('a', m1, Column('x', Integer))
+ b = Table('b', m1, Column('x', Integer, ForeignKey('a.x'), key='y'))
+ assert b.c.y.references(a.c.x)
+
+ m2 = MetaData()
+ b2 = b.tometadata(m2)
+ a2 = a.tometadata(m2)
+ assert b2.c.y.references(a2.c.x)
+
def test_pickle_metadata_sequence_restated(self):
m1 = MetaData()
Table('a', m1,