【问题标题】:How to re-generate tables in Django如何在 Django 中重新生成表
【发布时间】:2017-01-04 22:49:08
【问题描述】:

我是 Django 的新手。这是我的做法:

  1. 创建应用程序:python manager.py startap test
  2. 我添加了几个模型,

然后执行:

  1. python manager.py makemigrations
  2. python manager migrate

它会自动生成表格。然后我通过以下方式删除了数据库中的表:

  1. drop table table_name

再次执行:

  1. python manager.py makemigrations
  2. python manager.py migrate

但数据库中没有生成表,我收到消息“未检测到更改”。我该怎么办才能拥有这些表?

【问题讨论】:

  • Django 在你的数据库中保留一个迁移表来跟踪你正在进行的迁移,所以如果你直接操作数据库(没有 Django)并且不操作 Django 自己的状态跟踪,它会困惑了。只需删除迁移表并使用 makemigrations 重新生成数据库,然后尝试使用manage.py 来操作数据库。
  • 为什么要重新生成表?您是否对模型进行了更改,或者您是否试图清除表中的数据?在 django 应用程序中“重新生成”单个表的想法对我来说似乎不正确。我认为阅读这篇文章可能会有所帮助:stackoverflow.com/q/26713231/784648

标签: python django


【解决方案1】:

删除应用迁移目录中的所有迁移文件。然后运行

python makemigrations your_app 
python migrate

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多