Django依赖地狱与迁移

时间:2017-12-01 09:08:03

标签: python django django-migrations

我们有一个过时的第三方图书馆,我想摆脱它。问题是它在之前的一次迁移中使用过。怎么办呢?手动修改迁移,删除此迁移并使用一些django功能来解决问题,或者我注定要保留它? 这是0026_something_something migraration:

from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion
# import multi_email_field.fields


class Migration(migrations.Migration):

    dependencies = [
        ('invoices', '0025_auto_20161106_0931'),
    ]

    operations = [
        migrations.AlterField(
            model_name='company',
            name='email',
            field=multi_email_field.fields.MultiEmailField(verbose_name='email'),
        ),
        migrations.AlterField(
            model_name='invoice',
            name='bank_transfer',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoices', to='invoices.BankTransfer', verbose_name='bank transfer'),
        ),
    ]

问题库是multi_email_field。从那时起我们做了一些改变。

1 个答案:

答案 0 :(得分:1)

您可以squash您的迁移 - 您丢失了被压缩的迁移的“历史记录”,但是它会通过对您要删除的库的引用来消除迁移涉及手动篡改已经运行的迁移(这是非常危险的,并且容易引起头痛)。