summaryrefslogtreecommitdiff
path: root/migrate/changeset/databases/visitor.py
diff options
context:
space:
mode:
Diffstat (limited to 'migrate/changeset/databases/visitor.py')
-rw-r--r--migrate/changeset/databases/visitor.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/migrate/changeset/databases/visitor.py b/migrate/changeset/databases/visitor.py
index 60216cc..4afad77 100644
--- a/migrate/changeset/databases/visitor.py
+++ b/migrate/changeset/databases/visitor.py
@@ -18,7 +18,14 @@ dialects = {
def get_engine_visitor(engine, name):
"""
Get the visitor implementation for the given database engine.
+
+ :param engine: SQLAlchemy Engine
+ :param name: Name of the visitor
+ :type name: string
+ :type engine: Engine
+ :returns: visitor
"""
+ # TODO: link to supported visitors
return get_dialect_visitor(engine.dialect, name)
@@ -28,7 +35,16 @@ def get_dialect_visitor(sa_dialect, name):
Finds the visitor implementation based on the dialect class and
returns and instance initialized with the given name.
+
+ Binds dialect specific preparer to visitor.
"""
+
+ # map sa dialect to migrate dialect and return visitor
sa_dialect_cls = sa_dialect.__class__
migrate_dialect_cls = dialects[sa_dialect_cls]
- return migrate_dialect_cls.visitor(name)
+ visitor = migrate_dialect_cls.visitor(name)
+
+ # bind preparer
+ visitor.preparer = sa_dialect.preparer(sa_dialect)
+
+ return visitor