Loading django/db/backends/schema.py +20 −23 Original line number Diff line number Diff line Loading @@ -534,15 +534,12 @@ class BaseDatabaseSchemaEditor(object): # Default change? old_default = self.effective_default(old_field) new_default = self.effective_default(new_field) if old_default != new_default and not self.skip_default(new_field): if new_default is None: actions.append(( self.sql_alter_column_no_default % { "column": self.quote_name(new_field.column), }, [], )) else: needs_database_default = ( old_default != new_default and new_default is not None and not self.skip_default(new_field) ) if needs_database_default: if self.connection.features.requires_literal_defaults: # Some databases can't take defaults as a parameter (oracle) # If this is the case, the individual schema backend should Loading Loading @@ -696,7 +693,7 @@ class BaseDatabaseSchemaEditor(object): ) # Drop the default if we need to # (Django usually does not use in-database defaults) if not self.skip_default(new_field) and new_field.default is not None: if needs_database_default: sql = self.sql_alter_column % { "table": self.quote_name(model._meta.db_table), "changes": self.sql_alter_column_no_default % { Loading docs/releases/1.7.2.txt +2 −0 Original line number Diff line number Diff line Loading @@ -181,3 +181,5 @@ Bugfixes * Supported strings escaped by third-party libraries with the ``__html__`` convention in the template engine (:ticket:`23831`). * Prevented extraneous ``DROP DEFAULT`` SQL in migrations (:ticket:`23581`). tests/schema/tests.py +4 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,10 @@ class SchemaTests(TransactionTestCase): strict=True, ) # This will fail if DROP DEFAULT is inadvertently executed on this # field which drops the id sequence, at least on PostgreSQL. Author.objects.create(name='Foo') def test_rename(self): """ Tests simple altering of fields Loading Loading
django/db/backends/schema.py +20 −23 Original line number Diff line number Diff line Loading @@ -534,15 +534,12 @@ class BaseDatabaseSchemaEditor(object): # Default change? old_default = self.effective_default(old_field) new_default = self.effective_default(new_field) if old_default != new_default and not self.skip_default(new_field): if new_default is None: actions.append(( self.sql_alter_column_no_default % { "column": self.quote_name(new_field.column), }, [], )) else: needs_database_default = ( old_default != new_default and new_default is not None and not self.skip_default(new_field) ) if needs_database_default: if self.connection.features.requires_literal_defaults: # Some databases can't take defaults as a parameter (oracle) # If this is the case, the individual schema backend should Loading Loading @@ -696,7 +693,7 @@ class BaseDatabaseSchemaEditor(object): ) # Drop the default if we need to # (Django usually does not use in-database defaults) if not self.skip_default(new_field) and new_field.default is not None: if needs_database_default: sql = self.sql_alter_column % { "table": self.quote_name(model._meta.db_table), "changes": self.sql_alter_column_no_default % { Loading
docs/releases/1.7.2.txt +2 −0 Original line number Diff line number Diff line Loading @@ -181,3 +181,5 @@ Bugfixes * Supported strings escaped by third-party libraries with the ``__html__`` convention in the template engine (:ticket:`23831`). * Prevented extraneous ``DROP DEFAULT`` SQL in migrations (:ticket:`23581`).
tests/schema/tests.py +4 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,10 @@ class SchemaTests(TransactionTestCase): strict=True, ) # This will fail if DROP DEFAULT is inadvertently executed on this # field which drops the id sequence, at least on PostgreSQL. Author.objects.create(name='Foo') def test_rename(self): """ Tests simple altering of fields Loading