【问题标题】:making migrations for django project folder not working使 django 项目文件夹的迁移不起作用
【发布时间】:2018-01-21 09:02:39
【问题描述】:

我正在从现有数据库构建 Django 应用程序。现有数据库已全部设置完毕并按我的需要工作。

这个现有项目的模型自动放置在我的项目目录中。

以下是相关目录的大致思路:

    myProject
    | manage.py
    | myProject
    |  | models.py   <- auto generated models were placed here (also new models here)
    | app1
    |  | models.py
    |  | migrations

我认为我安装的所有应用都可以访问我的新模型,因此我在与自动生成的模型相同的 models.py 中包含了更多模型。

运行 makemigrations 似乎没有发现我所做的任何更改。 (我什至在已安装的应用程序中包含了“myProject”)

如何迁移这些更改?

【问题讨论】:

  • 您的迁移文件夹中有__init__.py 吗?
  • myProject/myProject 没有迁移文件夹
  • 是的,它不应该有迁移文件夹。但是您必须检查您的 app1 目录是否有包含 __init__.py 的迁移文件夹
  • 它确实有一个__init__.py
  • 在 migrations 文件夹中创建一个__init__.py 文件,该文件应该是完全空的并尝试进行迁移和迁移

标签: python django django-models


【解决方案1】:

您必须将__init__.py 添加到您的迁移文件夹以进行新的迁移。__init__.py 使您的迁移文件夹成为一个模块,因此 Django 可以识别它以进行新的迁移。

【讨论】:

    【解决方案2】:

    这是一个老问题,但只是为了完成:正如Django project models.py versus app models.pyDjango - makemigrations - No changes detected 中的回答,您不应该将模型放入您的项目应用程序中。它们应该分散在您使用它们的应用中。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多