使用DjangoSouth重命名模型的最简单方法?

使用DjangoSouth重命名模型的最简单方法?,第1张

使用Django / South重命名模型的最简单方法?

为了回答你的第一个问题,简单的模型/表重命名非常简单。运行命令:

./manage.py schemamigration yourapp rename_foo_to_bar --empty

(更新2:尝试

--auto
,而不是
--empty
避免低于警告感谢@KFB的提示。)

如果你使用的是南方的旧版本,则需要

startmigration
而不是
schemamigration

然后手动编辑迁移文件,如下所示:

class Migration(SchemaMigration):    def forwards(self, orm):        db.rename_table('yourapp_foo', 'yourapp_bar')    def backwards(self, orm):        db.rename_table('yourapp_bar','yourapp_foo')   

你可以使用db_table模型类中的meta选项来更简单地完成此 *** 作。但是每次这样做,都增加了代码库的旧版权重-类名与表名不同会使代码难以理解和维护。为了清楚起见,我完全支持执行这样的简单重构。

(更新)我刚刚在生产环境中尝试过此 *** 作,并在应用迁移时收到一个奇怪的警告。它说:

The following content types are stale and need to be deleted:    yourapp | fooAny objects related to these content types by a foreign key will alsobe deleted. Are you sure you want to delete these content types?If you're unsure, answer 'no'.

我回答“不”,一切似乎都很好。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5100941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存