[1.7.x] Fixed #23043: alter_field drops defaults too

This commit is contained in:
Andrew Godwin 2014-07-21 10:03:51 +01:00
parent 63ae8de8fc
commit 2fb1939a9e
1 changed files with 10 additions and 0 deletions

View File

@ -766,6 +766,16 @@ class BaseDatabaseSchemaEditor(object):
"check": new_db_params['check'],
}
)
# 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:
sql = self.sql_alter_column % {
"table": self.quote_name(model._meta.db_table),
"changes": self.sql_alter_column_no_default % {
"column": self.quote_name(new_field.column),
}
}
self.execute(sql)
# Reset connection if required
if self.connection.features.connection_persists_old_columns:
self.connection.close()