【问题标题】:How to run migrations in a forked django app?如何在分叉的 django 应用程序中运行迁移?
【发布时间】:2016-06-22 16:44:58
【问题描述】:

我知道这听起来像一个愚蠢的问题,当我面对这种对我基本上每天都使用的框架的不可原谅的缺乏知识时,我自己感到非常糟糕......但事实就是如此!

我不得不派生一个 django 包来为它的一些模型添加一些字段。一切都很好,我在 github 上分叉了项目,在本地克隆,然后意识到:任何 django 包都不包含常见的 django 设置,所以我应该如何运行我需要的迁移以完成我的更改并推回 repo新版本的应用?

我当然想开始另一个 django 项目并将 fork 克隆为一个应用程序,但是对于这样的过程来说,这不是有点过分吗?这样做的正确方法是什么?

【问题讨论】:

  • 我认为你别无选择。您必须启动一个 django 项目并将您的应用程序添加到 INSTALLED_APPS。或者手动编写迁移。
  • 如果您在 INSTALLED_APPS 中使用它,它应该能够识别迁移。我猜你的情况不是这样。你要分叉什么包?
  • INSTALLED_APPS 不存在,因为一个包与 django 无关(因此它在没有 settings.py 的情况下发布)。这就是我问题的根源!
  • 如果 INSTALLED_APPS 不存在,您必须创建项目并将其添加到设置中。但是,因为它是一个应用程序,所以确切的设置并不重要,因此您可以使用开箱即用的 sqlite 设置并运行迁移。
  • 我可能误解了这个问题...但是您是否需要迁移?如果它只是一个应用程序(没有关联的项目或数据库),为什么需要迁移任何东西?

标签: django migration fork packages


【解决方案1】:

您的应用在发布时没有任何项目环境,但在开发过程中您需要一个项目环境。无论是进行迁移、运行测试、运行服务器还是运行检查。

创建一个 django 项目是要走的路。除非您决定自己编写迁移并放弃测试。

我猜 django 应用程序存储库不提供 django 项目环境,因为它取决于开发人员来配置它。

【讨论】:

  • 确实有道理。不知何故,整个过程对我来说似乎很复杂。最好的答案,直到(如果)有人能想出一个更好的主意:)
猜你喜欢
  • 2019-07-23
  • 2018-10-19
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
相关资源
最近更新 更多