【发布时间】:2017-01-04 22:49:08
【问题描述】:
我是 Django 的新手。这是我的做法:
- 创建应用程序:python manager.py startap test
- 我添加了几个模型,
然后执行:
python manager.py makemigrationspython manager migrate
它会自动生成表格。然后我通过以下方式删除了数据库中的表:
drop table table_name
再次执行:
python manager.py makemigrationspython manager.py migrate
但数据库中没有生成表,我收到消息“未检测到更改”。我该怎么办才能拥有这些表?
【问题讨论】:
-
Django 在你的数据库中保留一个迁移表来跟踪你正在进行的迁移,所以如果你直接操作数据库(没有 Django)并且不操作 Django 自己的状态跟踪,它会困惑了。只需删除迁移表并使用 makemigrations 重新生成数据库,然后尝试使用
manage.py来操作数据库。 -
为什么要重新生成表?您是否对模型进行了更改,或者您是否试图清除表中的数据?在 django 应用程序中“重新生成”单个表的想法对我来说似乎不正确。我认为阅读这篇文章可能会有所帮助:stackoverflow.com/q/26713231/784648