[Sqlalchemy-tickets] Issue #4234: Foreign key constraints not reflected from SQL Server Database (z
Brought to you by:
zzzeek
From: Dave H. <iss...@bi...> - 2018-04-11 05:38:35
|
New issue 4234: Foreign key constraints not reflected from SQL Server Database https://bitbucket.org/zzzeek/sqlalchemy/issues/4234/foreign-key-constraints-not-reflected-from Dave Hirschfeld: Assuming a SQL Server database with two schemas `TEST1` and `TEST2` the below MVCE demonstrates that the foreign key constraint isn't correctly reflected from the database: ```python import sqlalchemy as sa engine = sa.create_engine( f"mssql://{server}/{database}?driver=ODBC+Driver+13+for+SQL+Server" ) metadata = sa.MetaData() table1 = sa.Table( 'TrueFalse', metadata, sa.Column('id', sa.SmallInteger, primary_key=True), sa.Column('name', sa.String(5), nullable=False), schema='TEST2', ) table2 = sa.Table( 'TestTable', metadata, sa.Column('id', sa.Integer, primary_key=True), sa.Column('true_false', sa.SmallInteger, sa.ForeignKey(table1.c.id)), schema='TEST1', ) metadata.create_all(engine) table3 = sa.Table('TestTable', sa.MetaData(bind=engine), schema='TEST1', autoload=True) ``` ```python In [10]: table2.foreign_keys Out[10]: {ForeignKey('TEST2.TrueFalse.id')} In [11]: table3.foreign_keys Out[11]: set() <---------- SHOULD BE THE SAME AS TABLE2!!! ``` The FK constraint is created correctly in the database. |