从Django中的所有应用程序应用迁移和模型

g0czyy6m  于 2023-05-19  发布在  Go
关注(0)|答案(3)|浏览(162)

我正在使用Django,我有一个这样的模式:

mainapp
|---mainapp
|   |---migrations.py
|   |---models/
|---app2
    |---migrations/
    |---models/

当我执行时:
python manage.py migrate生成mainapp/models的表,但也没有生成app2/modelsapp2/migrations
如何执行这些迁移?

c6ubokkw

c6ubokkw1#

首先尝试

python manage.py makemigrations

对于特定应用程序

python manage.py makemigrations appname

这将迁移所有应用程序
然后

python manage.py migrate

希望能有所帮助

j9per5c4

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迁移

41zrol4v

41zrol4v3#

首先要在settings.py中INSTALLED_APPS,您需要设置所有您想要进行迁移的应用程序,并为其进行迁移,如下所示:

# "settings.py"

INSTALLED_APPS = [
    'app1',
    'app2'
]

然后,运行下面的命令,可以在settings.py中为INSTALLED_APPS中设置的所有应用程序进行迁移:

python manage.py makemigrations

然后,运行下面的命令,可以在settings.py中迁移INSTALLED_APPS中设置的所有应用程序:

python manage.py migrate

此外,您还可以通过指定特定的多个应用程序来进行迁移,如下所示:

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”匹配的迁移。

相关问题