summaryrefslogtreecommitdiff
path: root/migrate/changeset/databases/oracle.py
diff options
context:
space:
mode:
Diffstat (limited to 'migrate/changeset/databases/oracle.py')
-rw-r--r--migrate/changeset/databases/oracle.py19
1 files changed, 6 insertions, 13 deletions
diff --git a/migrate/changeset/databases/oracle.py b/migrate/changeset/databases/oracle.py
index 80ec81d..93c9f8f 100644
--- a/migrate/changeset/databases/oracle.py
+++ b/migrate/changeset/databases/oracle.py
@@ -32,27 +32,20 @@ class OracleSchemaChanger(OracleSchemaGenerator, ansisql.ANSISchemaChanger):
column.nullable = orig
return ret
- def visit_column(self, column):
- delta = column.delta
+ def visit_column(self, delta):
keys = delta.keys()
- if len(set(('type', 'nullable', 'server_default')).intersection(keys)):
- self._run_subvisit(delta,
- self._visit_column_change,
- start_alter=False)
- # change name as the last action to avoid conflicts
if 'name' in keys:
self._run_subvisit(delta,
self._visit_column_name,
start_alter=False)
- def _visit_column_change(self, table, col_name, delta):
- if not hasattr(delta, 'result_column'):
- # Oracle needs the whole column definition, not just a lone name/type
- raise exceptions.NotSupportedError(
- "A column object must be present in table to alter it")
+ if len(set(('type', 'nullable', 'server_default')).intersection(keys)):
+ self._run_subvisit(delta,
+ self._visit_column_change,
+ start_alter=False)
- column = delta.result_column
+ def _visit_column_change(self, table, column, delta):
# Oracle cannot drop a default once created, but it can set it
# to null. We'll do that if default=None
# http://forums.oracle.com/forums/message.jspa?messageID=1273234#1273234