summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/reflection.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-10-04 18:57:01 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-10-04 19:06:35 -0400
commitb510b990947cb8e461df8877ca0f011542b7a319 (patch)
tree7dc2280b3cd5378e1f89c79f5dee2b4ce67363e2 /lib/sqlalchemy/engine/reflection.py
parentf7dee1380c40f3e73868a136aae5d18e976aa757 (diff)
downloadsqlalchemy-b510b990947cb8e461df8877ca0f011542b7a319.tar.gz
- use provide_metadata for new unique constraint / index tests
- add a test for PG reflection of unique index without any unique constraint - for PG, don't include 'duplicates_constraint' in the entry if the index does not actually mirror a constraint - use a distinct method for unique constraint reflection within table - catch unique constraint not implemented condition; this may be within some dialects and also is expected to be supported by Alembic tests - migration + changelogs for #3184 - add individual doc notes as well to MySQL, Postgreql fixes #3184
Diffstat (limited to 'lib/sqlalchemy/engine/reflection.py')
-rw-r--r--lib/sqlalchemy/engine/reflection.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index 15c2dd195..2a1def86a 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -508,6 +508,10 @@ class Inspector(object):
table_name, schema, table, cols_by_orig_name,
include_columns, exclude_columns, reflection_options)
+ self._reflect_unique_constraints(
+ table_name, schema, table, cols_by_orig_name,
+ include_columns, exclude_columns, reflection_options)
+
def _reflect_column(
self, table, col_d, include_columns,
exclude_columns, cols_by_orig_name):
@@ -665,8 +669,17 @@ class Inspector(object):
sa_schema.Index(name, *idx_cols, **dict(unique=unique))
+ def _reflect_unique_constraints(
+ self, table_name, schema, table, cols_by_orig_name,
+ include_columns, exclude_columns, reflection_options):
+
# Unique Constraints
- constraints = self.get_unique_constraints(table_name, schema)
+ try:
+ constraints = self.get_unique_constraints(table_name, schema)
+ except NotImplementedError:
+ # optional dialect feature
+ return
+
for const_d in constraints:
conname = const_d['name']
columns = const_d['column_names']