Django模型同步表

geo*_*wa4 4 python database django synchronization django-models

如果我更改Django模型中的字段,我如何将其与数据库表同步?我是否需要在数据库上手动执行此操作,还是有一个工具可以帮助完成此过程?

Sin*_*ion 6

唉,Django不支持任何简单的解决方案.

django将为您做的唯一事情是使用与您的新模型匹配的新表重新启动数据库:

$ #DON'T DO THIS UNLESS YOU CAN AFFORD TO LOSE ALL YOUR DATA!
$ python PROJECT_DIR/manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

下一个选项是使用manage.py的各种sql*选项来查看django将当前模型与数据库匹配的操作,然后发出自己的ALTER TABLE命令以使一切正常.当然这很容易出错并且很难.

真正的解决方案是使用数据库迁移工具(如south)生成迁移代码.

这是一个类似的问题,讨论了django的各种数据库迁移选项.

  • 南绝对是要走的路 (2认同)