从旧模块中删除依赖于自定义字段的 Django 迁移

Removing a Django migration that depends on custom field from an old module

我有一个 Django 1.8 应用程序,其初始迁移依赖于 django-interval-field,如下所示:

import interval.fields

migrations.CreateModel(
    name='Item',
    fields=[
        ...
        ('estimated_time', interval.fields.IntervalField(null=True, blank=True)),

我已经迁移这个字段以使用 Django 的内置 DurationField,我不再使用这个模块,但我需要将它保留在 requirements.txt 中以便迁移到 运行.

但是,此模块在尝试升级到 Django 1.9 时会抛出错误。另外,我不能永远保留这个模块。摆脱它会很好。

我已经尝试压缩迁移,但压缩的迁移仍然包含 import interval.fields 语句,并创建了间隔字段。压缩所做的就是将所有内容连接到一个文件中。

有人可以告诉我如何继续删除此模块吗?

有问题的 Django 应用是 here

在所有迁移文件中找到 interval.fields.IntervalField 的所有声明(对于有问题的模型字段)并替换为 IntegerField

只要你没有在迁移过程中使用Interval字段的数据迁移,你应该没问题。

所以,你的压扁不是真正的压扁

  1. requirements.txt
  2. 中删除此包
  3. 从您的 models.py
  4. 中删除 import interval.fields
  5. 在相关 my_app_label/migrations/1234_some_migrations.py
  6. 中将您的 interval.fields.IntervalField(xxx) 修改为 Django 中可用的某种类型
  7. 完成