diff options
author | jan.dittberner <unknown> | 2009-01-25 12:52:33 +0000 |
---|---|---|
committer | jan.dittberner <unknown> | 2009-01-25 12:52:33 +0000 |
commit | eb00570991a2b39b005749f7f7c67643bdcaba59 (patch) | |
tree | f0b4a4af0dfbc85cf14c23d00e95b24b1a26d2f7 /migrate/changeset/databases/oracle.py | |
parent | 728b677e56a8b51c5bda6c127be9837db2c11160 (diff) | |
download | sqlalchemy-migrate-eb00570991a2b39b005749f7f7c67643bdcaba59.tar.gz |
make migrate.changeset.databases PEP-8 clean and add it to the API docs
Diffstat (limited to 'migrate/changeset/databases/oracle.py')
-rw-r--r-- | migrate/changeset/databases/oracle.py | 92 |
1 files changed, 61 insertions, 31 deletions
diff --git a/migrate/changeset/databases/oracle.py b/migrate/changeset/databases/oracle.py index 1bb616d..35b146c 100644 --- a/migrate/changeset/databases/oracle.py +++ b/migrate/changeset/databases/oracle.py @@ -1,54 +1,74 @@ -from migrate.changeset import ansisql,exceptions +""" + Oracle database specific implementations of changeset classes. +""" + +from migrate.changeset import ansisql, exceptions from sqlalchemy.databases import oracle as sa_base import sqlalchemy as sa OracleSchemaGenerator = sa_base.OracleSchemaGenerator -class OracleColumnGenerator(OracleSchemaGenerator,ansisql.ANSIColumnGenerator): + +class OracleColumnGenerator(OracleSchemaGenerator, + ansisql.ANSIColumnGenerator): pass + + class OracleColumnDropper(ansisql.ANSIColumnDropper): pass -class OracleSchemaChanger(OracleSchemaGenerator,ansisql.ANSISchemaChanger): - def get_column_specification(self,column,**kwargs): - # Ignore the NOT NULL generated - override_nullable = kwargs.pop('override_nullable',None) + + +class OracleSchemaChanger(OracleSchemaGenerator, ansisql.ANSISchemaChanger): + + def get_column_specification(self, column, **kwargs): + # Ignore the NOT NULL generated + override_nullable = kwargs.pop('override_nullable', None) if override_nullable: orig = column.nullable column.nullable = True - ret=super(OracleSchemaChanger,self).get_column_specification(column,**kwargs) + ret = super(OracleSchemaChanger, self).get_column_specification( + column, **kwargs) if override_nullable: column.nullable = orig return ret - - def visit_column(self,delta): + + def visit_column(self, delta): keys = delta.keys() - if 'type' in keys or 'nullable' in keys or 'default' in keys or 'server_default' in keys: - self._run_subvisit(delta,self._visit_column_change) + if 'type' in keys or 'nullable' in keys or 'default' in keys \ + or 'server_default' in keys: + self._run_subvisit(delta, self._visit_column_change) if 'name' in keys: - self._run_subvisit(delta,self._visit_column_name) - def _visit_column_change(self,table_name,col_name,delta): - if not hasattr(delta,'result_column'): - # Oracle needs the whole column definition, not just a lone name/type + self._run_subvisit(delta, self._visit_column_name) + + def _visit_column_change(self, table_name, 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 is required to do this") - + column = delta.result_column - # 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 - dropdefault_hack = (column.server_default is None and 'server_default' in delta.keys()) - # Oracle apparently doesn't like it when we say "not null" if the - # column's already not null. Fudge it, so we don't need a new function - notnull_hack = ((not column.nullable) and ('nullable' not in delta.keys())) - # We need to specify NULL if we're removing a NOT NULL constraint + # 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 + dropdefault_hack = (column.server_default is None \ + and 'server_default' in delta.keys()) + # Oracle apparently doesn't like it when we say "not null" if + # the column's already not null. Fudge it, so we don't need a + # new function + notnull_hack = ((not column.nullable) \ + and ('nullable' not in delta.keys())) + # We need to specify NULL if we're removing a NOT NULL + # constraint null_hack = (column.nullable and ('nullable' in delta.keys())) - - - if dropdefault_hack: + + if dropdefault_hack: column.server_default = sa.PassiveDefault(sa.sql.null()) if notnull_hack: column.nullable = True - colspec=self.get_column_specification(column,override_nullable=null_hack) + colspec=self.get_column_specification(column, + override_nullable=null_hack) if null_hack: colspec += ' NULL' if notnull_hack: @@ -59,18 +79,28 @@ class OracleSchemaChanger(OracleSchemaGenerator,ansisql.ANSISchemaChanger): self.start_alter_table(table_name) self.append("MODIFY ") self.append(colspec) + + class OracleConstraintCommon(object): - def get_constraint_name(self,cons): + + def get_constraint_name(self, cons): # Oracle constraints can't guess their name like other DBs if not cons.name: raise exceptions.NotSupportedError( "Oracle constraint names must be explicitly stated") return cons.name -class OracleConstraintGenerator(OracleConstraintCommon,ansisql.ANSIConstraintGenerator): + + +class OracleConstraintGenerator(OracleConstraintCommon, + ansisql.ANSIConstraintGenerator): pass -class OracleConstraintDropper(OracleConstraintCommon,ansisql.ANSIConstraintDropper): + + +class OracleConstraintDropper(OracleConstraintCommon, + ansisql.ANSIConstraintDropper): pass + class OracleDialect(ansisql.ANSIDialect): columngenerator = OracleColumnGenerator columndropper = OracleColumnDropper |