我们都喜欢 django 中的南迁移,通常您首先使用convert_to_south
然后进行模型类更改,然后运行schemamigration
并migrate
我不确定以下情况是否发生在任何人身上,项目没有在版本控制下跟踪(git stash 会很棒),你改变了模型类并且丢失了撤消/重做历史,你意识到应用程序已经尚未皈依南方。有没有命令可以解决这个问题?
这是一个想法……首先阅读此处的所有免责声明,例如支持哪些数据库来检测 FK。
https://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-inspectdb
更新:真正的答案是混合使用底部的两个想法。基本上,inspectdb 是一种很好的人类可读方式来找出模型和数据库之间的差异。然后,我会手动构建 alter table 语句来匹配。幸运的是,sqlall
输出了创建语句,因此大部分内容将被剪切并粘贴到新字段中。
备份所有内容。
python manage.py inspectdb
您也可以手动进行迁移,然后转换为南。
python manage.py dbshell
python manage.py sqlall <myapp>