]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Fixed regression in new "naming convention" feature where conventions
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 5 Feb 2014 21:54:31 +0000 (16:54 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 5 Feb 2014 21:54:31 +0000 (16:54 -0500)
would fail if the referred table in a foreign key contained a schema
name.  Pull request courtesy Thomas Farvour. pullreq github:67

doc/build/changelog/changelog_09.rst
test/sql/test_metadata.py

index d452c4bb3cae2e96cd9ee44855774dd19bcb8caf..d7ca44beeb6a9a0ff94322d8bc72240a5ab283a5 100644 (file)
 .. changelog::
     :version: 0.9.3
 
+    .. change::
+        :tags: bug, sql
+        :pullreq: github:67
+
+        Fixed regression in new "naming convention" feature where conventions
+        would fail if the referred table in a foreign key contained a schema
+        name.  Pull request courtesy Thomas Farvour.
+
     .. change::
         :tags: bug, sql
 
index dd3f4fc3d7ef1fc5c6d5ad501804bcb1f2a46c2f..7380732af8737941c7bcce80beafc6fad5309679 100644 (file)
@@ -2523,13 +2523,14 @@ class DialectKWArgTest(fixtures.TestBase):
                         "participating_z_one": "default"})
 
 class NamingConventionTest(fixtures.TestBase):
-    def _fixture(self, naming_convention):
+    def _fixture(self, naming_convention, table_schema=None):
         m1 = MetaData(naming_convention=naming_convention)
 
         u1 = Table('user', m1,
                 Column('id', Integer, primary_key=True),
                 Column('version', Integer, primary_key=True),
-                Column('data', String(30))
+                Column('data', String(30)),
+                schema=table_schema
             )
 
         return u1
@@ -2555,6 +2556,23 @@ class NamingConventionTest(fixtures.TestBase):
             CheckConstraint, u1.c.data == 'x'
         )
 
+    def test_fk_name_schema(self):
+        u1 = self._fixture(naming_convention={
+                "fk": "fk_%(table_name)s_%(column_0_name)s_"
+                "%(referred_table_name)s_%(referred_column_0_name)s"
+            }, table_schema="foo")
+        m1 = u1.metadata
+        a1 = Table('address', m1,
+                Column('id', Integer, primary_key=True),
+                Column('user_id', Integer),
+                Column('user_version_id', Integer)
+            )
+        fk = ForeignKeyConstraint(['user_id', 'user_version_id'],
+                        ['foo.user.id', 'foo.user.version'])
+        a1.append_constraint(fk)
+        eq_(fk.name, "fk_address_user_id_user_id")
+
+
     def test_fk_attrs(self):
         u1 = self._fixture(naming_convention={
                 "fk": "fk_%(table_name)s_%(column_0_name)s_"