本文将讲述如何使用 South 重命名表的字段名。
假设应用 foobar 有个 model:
class Foo(models.Model):
foo = models.IntegerField()
想要将 foo 字段名改为 bar。
-
改好 models.py
class Foo(models.Model): bar = models.IntegerField()
-
执行 south 命令
# python manage.py schemamigration yourapp rename_field_foo_to_bar --empty # 本例是 python manage.py schemamigration foobar rename_field_foo_to_bar --empty
-
更改生成的 000x_xxx.py 文件
class Migration(SchemaMigration): def forwards(self, orm): # 更改列名 # db.rename_column('yourapp_foo', 'oldname', 'newname') db.rename_column('foobar_foo', 'foo', 'bar') def backwards(self, orm): # 撤销更改 # db.rename_column('yourapp_foo', 'newname', 'oldname') db.rename_column('foobar_foo', 'bar', 'foo')
Comments