【问题标题】:Django makemigrations app orderDjango makemigrations 应用程序订单
【发布时间】:2015-12-16 10:46:38
【问题描述】:

我正在使用 Django 1.8.4。由于我的项目仍在建设中,我经常删除所有迁移脚本,并重新运行 makemigrations 以生成初始迁移脚本。
我发现makemigrations 会为我的一个应用程序生成两个迁移脚本,而其他应用程序只有0001_initial.py。它会是这样的:

- 0001_initial.py
- 0002_auto_20150919_1645.py

我检查了0002_auto_20150919_1645.py的内容,它正在从其他应用的模型中添加外部字段。
我想这可能与为应用程序创建迁移的顺序有关。所以我删除了这个应用的这两个迁移脚本,然后再次运行makemigrations。现在我只有一个适用于这个应用程序的迁移脚本。

我的问题是: 有什么方法可以控制makemigrations 为应用创建迁移的顺序吗?

例如,我有两个应用程序,app1app2,而app1 依赖于app2makemigrations 是否可以先为app2 创建迁移,然后为app1 创建迁移?

【问题讨论】:

    标签: django django-migrations


    【解决方案1】:

    您可以为单个应用手动运行迁移。

    ./manage.py makemigrations app2
    ./manage.py makemigrations app1
    ./manage.py makemigrations # migrate the rest of your apps
    

    你也可以squash你现有的迁移。

    【讨论】:

    • 感谢您的回答,这对我的情况来说是一个很好的解决方案,而 ./manage.py migrate 应该是 ./manage.py makemigrations。只是想知道 Django 是否有任何配置来控制此顺序,而不是为应用手动运行 makemigrations
    • 但它也会检测其他应用的变化
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 2018-03-29
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多