diff options
author | iElectric <unknown> | 2009-06-27 14:13:27 +0000 |
---|---|---|
committer | iElectric <unknown> | 2009-06-27 14:13:27 +0000 |
commit | 9f7ab96881415ec6bd7fc7729f5196d75d01b8ab (patch) | |
tree | 3eef10782c578b10b1e2186fcec0d07aa43d15ba /migrate/changeset/databases/oracle.py | |
parent | a8c31eb25f89542c9be72d0a8f90b4d984b6aead (diff) | |
download | sqlalchemy-migrate-9f7ab96881415ec6bd7fc7729f5196d75d01b8ab.tar.gz |
- completely refactored ColumnDelta to extract differences between columns/parameters (also fixes issue #23)
- fixed some bugs (passing server_default) on column.alter
- updated tests, specially ColumnDelta and column.alter
- introduced alter_metadata which can preserve altering existing objects if False (defaults to True)
- updated documentation
Diffstat (limited to 'migrate/changeset/databases/oracle.py')
-rw-r--r-- | migrate/changeset/databases/oracle.py | 19 |
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 |