使 django 项目文件夹的迁移不起作用
Posted
技术标签:
【中文标题】使 django 项目文件夹的迁移不起作用【英文标题】:making migrations for django project folder not working 【发布时间】: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
文件,该文件应该是完全空的并尝试进行迁移和迁移
【参考方案1】:
您必须将__init__.py
添加到您的迁移文件夹以进行新的迁移。__init__.py
使您的迁移文件夹成为一个模块,因此 Django 可以识别它以进行新的迁移。
【讨论】:
【参考方案2】:这是一个老问题,但只是为了完成:正如Django project models.py versus app models.py 和Django - makemigrations - No changes detected 中的回答,您不应该将模型放入您的项目应用程序中。它们应该分散在您使用它们的应用中。
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review以上是关于使 django 项目文件夹的迁移不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如果 AddField 引用“相同”列,则带有“--fake-initial”的 Django 迁移不起作用