summaryrefslogtreecommitdiff
path: root/migrate/changeset/databases/visitor.py
diff options
context:
space:
mode:
authorjan.dittberner <unknown>2008-02-06 18:39:07 +0000
committerjan.dittberner <unknown>2008-02-06 18:39:07 +0000
commit2cfe1fc31c0dfa8241200f635d8e7f6cfce2b507 (patch)
tree69541da758ab44652badc59ec0ce659364bdfe7f /migrate/changeset/databases/visitor.py
downloadsqlalchemy-migrate-2cfe1fc31c0dfa8241200f635d8e7f6cfce2b507.tar.gz
moved trunk, branches and tags to project root
fixes Issue #5
Diffstat (limited to 'migrate/changeset/databases/visitor.py')
-rw-r--r--migrate/changeset/databases/visitor.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/migrate/changeset/databases/visitor.py b/migrate/changeset/databases/visitor.py
new file mode 100644
index 0000000..437dc68
--- /dev/null
+++ b/migrate/changeset/databases/visitor.py
@@ -0,0 +1,20 @@
+import sqlalchemy as sa
+from migrate.changeset.databases import sqlite,postgres,mysql,oracle
+from migrate.changeset import ansisql
+
+# Map SA dialects to the corresponding Migrate extensions
+dialects = {
+ sa.engine.default.DefaultDialect : ansisql.ANSIDialect,
+ sa.databases.sqlite.SQLiteDialect : sqlite.SQLiteDialect,
+ sa.databases.postgres.PGDialect : postgres.PGDialect,
+ sa.databases.mysql.MySQLDialect : mysql.MySQLDialect,
+ sa.databases.oracle.OracleDialect : oracle.OracleDialect,
+}
+
+def get_engine_visitor(engine,name):
+ return get_dialect_visitor(engine.dialect,name)
+
+def get_dialect_visitor(sa_dialect,name):
+ sa_dialect_cls = sa_dialect.__class__
+ migrate_dialect_cls = dialects[sa_dialect_cls]
+ return migrate_dialect_cls.visitor(name)