为了回答你的第一个问题,简单的模型/表重命名非常简单。运行命令:
./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'.
我回答“不”,一切似乎都很好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)