解决
有趣:
./manage.py makemigrations apps.myapp
- > “App'apps.myapp'可以
找不到。是INSTALLED_APPS吗?“./manage.py makemigrations myapp
- >作品。./manage.py makemigrations
- > “未检测到任何更改”(如果myapp位于项目根目录中,它会检测到更改)
原始问题:
项目结构
myproject/
myproject/
apps/
myapp/
__init__.py
admin.py
models.py
urls.py
views.py
tests.py
myapp2/
myapp3/
__init__.py
static/
templates/
virtualenv/
manage.py
的myproject /应用/ MyApp的/ models.py
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
Settings.py
INSTALLED_APPS = [
# ...
'apps.myapp',
'apps.myapp2',
'apps.myapp3',
]
makemigrations
找不到项目根目录中的“myapps”
与此同时,migrate
确实找到了它。
$ ./manage.py makemigrations apps.myapp
App 'apps.myapp' could not be found. Is it in INSTALLED_APPS?
$ ./manage.py migrate apps.myapp
CommandError: App 'apps.myapp' does not have migrations.
是不是“让我们的应用程序进入应用程序文件夹”练习有效,我做错了什么,或者它是makemigrations
命令的错误?
注意1:在运行makemigrations
之前,我删除了myapp的“migrations”文件夹,但我很确定无关紧要。当应用程序位于项目根目录中时,它确实被重新创建。
注意2:我研究过谷歌和stackoverflow,我只发现了类似的问题,解决方案是“将应用程序添加到settings.py”,“迁移前运行makemigrations”或“Django 1.6之间的某些迁移问题” 1.7" 。我认为这些都不适用于我的情况。
答案 0 :(得分:3)
试
INSTALLED_APPS = [
# ...
'myproject.apps.myapp',
]
和
python manage.py makemigrations myapp
答案 1 :(得分:1)
您可能已经删除了应用程序内的migrations文件夹,或者删除了migrations文件夹内的 init .py,创建了一个新的
myproject/
apps/
myapp/
migrations/
__init__.py
您始终可以单独进行迁移,而无需执行上述步骤
python manage.py makemigrations myapp
答案 2 :(得分:1)
现在可以使用。以前没有用,因为我没有对模型进行任何更改。 我是django的新手,正在尝试从观看的视频中执行命令。 Django文档告诉您,makemigrations根据对模型所做的更改创建新的迁移。因此,我在models.py和admin.py中进行了更改,并且现在可以正常使用。