【问题标题】:Create migrations for models inside egg dependency为 egg 依赖项中的模型创建迁移
【发布时间】:2017-02-15 14:14:36
【问题描述】:

我有一个本身没有应用程序的 Django 项目。所有应用程序都通过安装在 pyvenv 环境中的 egg 依赖项进入。
这些应用有模型,但没有“manage.py”或数据库设置(只是一个普通的应用)。

我现在正在努力为鸡蛋中的应用程序创建迁移。当我执行“python manage.py makemigrations”时,即使我之前擦除了数据库,我也会得到“未检测到更改”。然后当我运行服务器时,它告诉我有 13 个来自 Django 核心模块的未应用迁移,例如“auth”、“sessions”等。我可以运行“python manage.py migrate”应用它们。

我尝试创建一个虚拟应用程序,将其添加到 INSTALLED_APPS 并将模型从鸡蛋导入到该应用程序的 models.py 中。也没有工作,仍然“未检测到更改”。

那些 egg 依赖项是我创建的应用程序。 'egg' 这里的格式错误吗?有哪些替代方案?我可以告诉“makemigrations”模块在哪里看吗?还有什么原因?

【问题讨论】:

  • INSTALLED_APPS 中是否包含 egg 应用?
  • 为什么这种迁移首先不在鸡蛋内?
  • @SardorbekImomaliev 因为应用程序对数据库一无所知,也没有 manage.py

标签: django django-models egg


【解决方案1】:

那是因为 Django 在寻找迁移时正在寻找目录。 Eggs 不是目录,因此不会找到作为 Eggs 安装的应用程序的迁移。

如果您告诉makemigrations 为您执行此操作,您将看到如下错误(在 Windows 上):

FileNotFoundError: [WinError 3] The system cannot find the path specified: C:\\path\\to\\app_egg.egg\\app\\migrations

我认为最好的解决方案是不使用鸡蛋。

【讨论】:

  • 谢谢。我们通过将所有迁移移到主项目并仍然使用 egg 来解决这个问题。
  • @Sebastian 很高兴你解决了这个问题。这个故事的寓意是鸡蛋可以像鸡蛋一样迁移:-)
猜你喜欢
  • 2018-12-24
  • 2015-02-18
  • 1970-01-01
  • 2021-07-04
  • 2019-04-16
  • 2017-09-15
  • 2021-07-24
  • 2016-04-20
  • 2014-10-31
相关资源
最近更新 更多