我正在使用Django,我有一个这样的模式:
mainapp |---mainapp | |---migrations.py | |---models/ |---app2 |---migrations/ |---models/
当我执行时:python manage.py migrate生成mainapp/models的表,但也没有生成app2/models和app2/migrations。如何执行这些迁移?
python manage.py migrate
mainapp/models
app2/models
app2/migrations
c6ubokkw1#
首先尝试
python manage.py makemigrations
对于特定应用程序
python manage.py makemigrations appname
这将迁移所有应用程序然后
希望能有所帮助
j9per5c42#
确保您已在已安装的应用程序中添加了该应用程序。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'mainapp', 'app2', #......, #......, ]
然后创建迁移使用python mananage.py makemigrations并使用python manange.py migrate迁移
python mananage.py makemigrations
python manange.py migrate
41zrol4v3#
首先要在settings.py中INSTALLED_APPS,您需要设置所有您想要进行迁移的应用程序,并为其进行迁移,如下所示:
settings.py
# "settings.py" INSTALLED_APPS = [ 'app1', 'app2' ]
然后,运行下面的命令,可以在settings.py中为INSTALLED_APPS中设置的所有应用程序进行迁移:
INSTALLED_APPS
然后,运行下面的命令,可以在settings.py中迁移INSTALLED_APPS中设置的所有应用程序:
此外,您还可以通过指定特定的多个应用程序来进行迁移,如下所示:
python manage.py makemigrations app1 app2
但是,如果您在settings.py中指定未在INSTALLED_APPS中设置的应用程序,如下所示:
python manage.py makemigrations app1 app2 app3 app4
然后,出现以下错误,因此不会对所有指定的应用程序进行迁移:未安装标签为“app4”的应用程序。未安装标签为“app3”的应用程序。此外,您可以通过如下所示指定一个特定应用,仅为该应用进行迁移:
python manage.py migrate app1
但是,您无法通过如下所示指定多个特定应用程序来迁移它们:
python manage.py migrate app1 app2
然后,有下面的错误:CommandError:找不到与应用“app1”中的“app2”匹配的迁移。
3条答案
按热度按时间c6ubokkw1#
首先尝试
对于特定应用程序
这将迁移所有应用程序
然后
希望能有所帮助
j9per5c42#
确保您已在已安装的应用程序中添加了该应用程序。
然后创建迁移
使用
python mananage.py makemigrations
并使用python manange.py migrate
迁移41zrol4v3#
首先要在
settings.py
中INSTALLED_APPS,您需要设置所有您想要进行迁移的应用程序,并为其进行迁移,如下所示:然后,运行下面的命令,可以在
settings.py
中为INSTALLED_APPS
中设置的所有应用程序进行迁移:然后,运行下面的命令,可以在
settings.py
中迁移INSTALLED_APPS
中设置的所有应用程序:此外,您还可以通过指定特定的多个应用程序来进行迁移,如下所示:
但是,如果您在
settings.py
中指定未在INSTALLED_APPS
中设置的应用程序,如下所示:然后,出现以下错误,因此不会对所有指定的应用程序进行迁移:
未安装标签为“app4”的应用程序。
未安装标签为“app3”的应用程序。
此外,您可以通过如下所示指定一个特定应用,仅为该应用进行迁移:
但是,您无法通过如下所示指定多个特定应用程序来迁移它们:
然后,有下面的错误:
CommandError:找不到与应用“app1”中的“app2”匹配的迁移。