summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2022-06-08 17:13:28 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2022-06-08 17:13:28 +0000
commit73f867d996450fb4fcb0918d3d147ce170ca5fe7 (patch)
tree8104e9967cf7cc56c0bd39de61ebdd57afa12b4f /lib/sqlalchemy/engine
parent258d07e478eab9ee385f36a5c5fd56c56bf7dfea (diff)
parent93bc7ed534f12934528c0cbf5489417ddc025e40 (diff)
downloadsqlalchemy-73f867d996450fb4fcb0918d3d147ce170ca5fe7.tar.gz
Merge "graceful degrade for FKs not reflectable" into main
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/reflection.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index b8ece2b1d..4fc57d5f4 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -779,6 +779,7 @@ class Inspector(inspection.Inspectable["Inspector"]):
schema,
table,
cols_by_orig_name,
+ include_columns,
exclude_columns,
resolve_fks,
_extend_on,
@@ -922,6 +923,7 @@ class Inspector(inspection.Inspectable["Inspector"]):
schema,
table,
cols_by_orig_name,
+ include_columns,
exclude_columns,
resolve_fks,
_extend_on,
@@ -938,10 +940,17 @@ class Inspector(inspection.Inspectable["Inspector"]):
cols_by_orig_name[c].key if c in cols_by_orig_name else c
for c in fkey_d["constrained_columns"]
]
- if exclude_columns and set(constrained_columns).intersection(
+
+ if (
exclude_columns
+ and set(constrained_columns).intersection(exclude_columns)
+ or (
+ include_columns
+ and set(constrained_columns).difference(include_columns)
+ )
):
continue
+
referred_schema = fkey_d["referred_schema"]
referred_table = fkey_d["referred_table"]
referred_columns = fkey_d["referred_columns"]
@@ -976,6 +985,7 @@ class Inspector(inspection.Inspectable["Inspector"]):
options = fkey_d["options"]
else:
options = {}
+
table.append_constraint(
sa_schema.ForeignKeyConstraint(
constrained_columns,