Django 1.10没有检测到我的模型中的更改,也不会创建迁移

时间:2017-02-08 04:22:05

标签: django django-models django-migrations

我刚刚开始使用Django。我喜欢破解事物,所以除了民意调查教程之外,我还在构建自己的实验应用程序。我想改变实验应用程序及其相关项目的名称已经过去了。

在处理这个问题的过程中,我决定放弃当前的数据库,重新开始。出了点问题,我记不起来了。现在已经好几个小时,在这里取得进展,在那里搜索。

我现在看来的情况是Django拒绝注意models.py中的变化。目前,我运行manage.py showmigrations时没有为应用列出迁移,尽管该应用本身已列出。

我尝试删除迁移目录,更改models.py文件的内容及其组合,并尝试各种看起来很有希望的manage.py命令。到目前为止,没有任何效果。

那么,我可能做错了什么?请记住,我已更改应用程序的名称,包括更改其存储的目录名称以及数据库的名称。已对项目和应用程序中的文件执行搜索和替换。 settings.py已被仔细考虑过,但我所知道的一切似乎都很好。

谢谢!

1 个答案:

答案 0 :(得分:1)

我假设您在settings.py中更改了应用名称?当你说你改变你的应用名称时,你开始一个新的应用程序或一个新的项目...意思是,当你开始时你这样做:

django-admin.py startproject myproject

运行startproject会为您提供以下文件夹和文件结构:

    ├── manage.py
    └── myproject
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

从那里,你可以运行

python manage.py startapp myapp

这将使您的文件夹结构如下所示:

    ├── manage.py
    ├── my_django15_project
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── myapp
        ├── __init__.py
        ├── models.py
        ├── tests.py
        └── views.py

从那里,您可以通过更改文件夹名称' myapp'来更改您的应用。到了mynewapp'然后通过修改settings.py来让mynewapp'列在你的INSTALLED_APPS部分。

执行此操作后,您应该运行

pythonmanage.py makemigrations mynewapp

验证它是否生成迁移文件

然后运行

python manage.py migrate

如果您将myproject文件夹更改为新名称,例如mynewproject,我建议您尝试更改其名称,然后再运行

django-admin.py startproject mynewproject

然后执行此操作后,相应地更新这些文件,并将myapp文件夹复制到mynewproject文件夹中。

您可能想要检查的其他一些事情是数据库连接器是否正确,还尝试重新启动您的网络服务器。

如果这些都不起作用,您需要提供更多信息,请给我留言并告诉我

祝你好运