dan*_*bal 5 django django-models django-migrations
解决了
有趣的问题:
./manage.py makemigrations apps.myapp ->“找不到应用程序'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
Run Code Online (Sandbox Code Playgroud)
myproject / apps / 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)
Run Code Online (Sandbox Code Playgroud)
Settings.py
INSTALLED_APPS = [
# ...
'apps.myapp',
'apps.myapp2',
'apps.myapp3',
]
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
“将我们的应用放入应用文件夹中”的做法是否不再有效,我做错了还是makemigrations命令的错误?
注意1:在运行之前makemigrations,我删除了myapp的“ migrations”文件夹,但我确定这没关系。当应用程序位于项目根目录中时,确实会重新创建它。
注意2:我确实研究了google和stackoverflow,但只发现了类似的问题,解决方案是“将应用程序添加到settings.py”,“在迁移之前运行makemigrations”或“ Django 1.6和1.7之间的某些迁移问题”。我认为这些都不适合我的情况。
Shi*_*eph 16
您可能已经删除了迁移内部应用程序或文件夹__init__.py里面<app>/migrations/的文件夹,创建一个新的
myproject/
apps/
myapp/
migrations/
__init__.py
Run Code Online (Sandbox Code Playgroud)
您可以随时单独进行迁移,而无需执行上述步骤
python manage.py makemigrations myapp
Run Code Online (Sandbox Code Playgroud)
尝试
INSTALLED_APPS = [
# ...
'myproject.apps.myapp',
]
Run Code Online (Sandbox Code Playgroud)
和
python manage.py makemigrations myapp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |