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