summaryrefslogtreecommitdiff
path: root/migrate/changeset/databases
diff options
context:
space:
mode:
Diffstat (limited to 'migrate/changeset/databases')
-rw-r--r--migrate/changeset/databases/firebird.py2
-rw-r--r--migrate/changeset/databases/mysql.py6
-rw-r--r--migrate/changeset/databases/sqlite.py6
-rw-r--r--migrate/changeset/databases/visitor.py14
4 files changed, 20 insertions, 8 deletions
diff --git a/migrate/changeset/databases/firebird.py b/migrate/changeset/databases/firebird.py
index 226728b..bbb4acd 100644
--- a/migrate/changeset/databases/firebird.py
+++ b/migrate/changeset/databases/firebird.py
@@ -31,7 +31,7 @@ class FBColumnDropper(ansisql.ANSIColumnDropper):
if column.name in [col.name for col in index.columns]:
index.drop()
# TODO: recreate index if it references more than this column
-
+
for cons in column.table.constraints:
if isinstance(cons,PrimaryKeyConstraint):
# will be deleted only when the column its on
diff --git a/migrate/changeset/databases/mysql.py b/migrate/changeset/databases/mysql.py
index 6987b4b..29518e2 100644
--- a/migrate/changeset/databases/mysql.py
+++ b/migrate/changeset/databases/mysql.py
@@ -2,11 +2,14 @@
MySQL database specific implementations of changeset classes.
"""
+import sqlalchemy
from sqlalchemy.databases import mysql as sa_base
from sqlalchemy import types as sqltypes
from migrate import exceptions
from migrate.changeset import ansisql
+from migrate.changeset import util
+
MySQLSchemaGenerator = sa_base.MySQLDDLCompiler
@@ -34,7 +37,8 @@ class MySQLSchemaChanger(MySQLSchemaGenerator, ansisql.ANSISchemaChanger):
first = primary_keys.pop(0)
if first.name == delta.current_name:
colspec += " AUTO_INCREMENT"
- old_col_name = self.preparer.quote(delta.current_name, table.quote)
+ q = util.safe_quote(table)
+ old_col_name = self.preparer.quote(delta.current_name, q)
self.start_alter_table(table)
diff --git a/migrate/changeset/databases/sqlite.py b/migrate/changeset/databases/sqlite.py
index 5ddd3f1..6453422 100644
--- a/migrate/changeset/databases/sqlite.py
+++ b/migrate/changeset/databases/sqlite.py
@@ -42,7 +42,7 @@ class SQLiteHelper(SQLiteCommon):
self.execute()
self.append('DROP TABLE migration_tmp')
self.execute()
-
+
def visit_column(self, delta):
if isinstance(delta, DictMixin):
column = delta.result_column
@@ -52,7 +52,7 @@ class SQLiteHelper(SQLiteCommon):
table = self._to_table(column.table)
self.recreate_table(table,column,delta)
-class SQLiteColumnGenerator(SQLiteSchemaGenerator,
+class SQLiteColumnGenerator(SQLiteSchemaGenerator,
ansisql.ANSIColumnGenerator,
# at the end so we get the normal
# visit_column by default
@@ -78,7 +78,7 @@ class SQLiteColumnDropper(SQLiteHelper, ansisql.ANSIColumnDropper):
"""SQLite ColumnDropper"""
def _modify_table(self, table, column, delta):
-
+
columns = ' ,'.join(map(self.preparer.format_column, table.columns))
return 'INSERT INTO %(table_name)s SELECT ' + columns + \
' from migration_tmp'
diff --git a/migrate/changeset/databases/visitor.py b/migrate/changeset/databases/visitor.py
index 224c40f..c70aa6b 100644
--- a/migrate/changeset/databases/visitor.py
+++ b/migrate/changeset/databases/visitor.py
@@ -8,8 +8,7 @@ from migrate.changeset.databases import (sqlite,
postgres,
mysql,
oracle,
- firebird,
- ibmdb2)
+ firebird)
# Map SA dialects to the corresponding Migrate extensions
@@ -21,10 +20,19 @@ DIALECTS = {
"mysql": mysql.MySQLDialect,
"oracle": oracle.OracleDialect,
"firebird": firebird.FBDialect,
- "ibm_db_sa": ibmdb2.IBMDBDialect
}
+# NOTE(mriedem): We have to conditionally check for DB2 in case ibm_db_sa
+# isn't available since ibm_db_sa is not packaged in sqlalchemy like the
+# other dialects.
+try:
+ from migrate.changeset.databases import ibmdb2
+ DIALECTS["ibm_db_sa"] = ibmdb2.IBMDBDialect
+except ImportError:
+ pass
+
+
def get_engine_visitor(engine, name):
"""
Get the visitor implementation for the given database engine.