Так, моя модель наследовалась от класса Message библиотеки django-postman.

Поэтому моя миграция 0001_initial выглядит следующим образом:

class Migration(migrations.Migration):

    initial = True

    зависимости = [
        ('postman', '0001_initial'),
    ]

    операции = [
        migrations.CreateModel(
            name='Message',
            поля=[
                ('message_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='postman.Message')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('deliver_at', models.DateTimeField(blank=True, null=True)),
                ('content', models.TextField(blank=True, null=True)),
            ],
            bases=('postman.message',),
        ),
    ]

Сейчас я хочу полностью удалить свою собственную модель Message. Я могу удалить ее нормально и запустить makemigrations, которая создает 0004_delete_message, что выглядит следующим образом:

class Migration(migrations.Migration):

    dependencies = [
        ('postman', '0001_initial'),
        ('my_app', '0003_migrate_data_to_new_model'),
    ]

    операции = [
        migrations.DeleteModel(
            name='Message',
        ),
    ]

Сейчас проблема в том, что я полностью хочу удалить библиотеку django-postman, в том числе из моего INSTALLED_APPS. Это создает проблему неприменимости обеих миграций, поскольку они обе зависят от postman.0001_initial, которая больше не существует.

Существует ли чистый способ преодоления этого устаревания с сохранением работоспособности моих миграций или мне придется вручную отредактировать 0001_initial и запустить CreateModel для модели, представленной в postman.0001_initial, и изменить bases моей модели, чтобы она указывала на модель, которую я создал?

.

Ответы (1)

Вам нужно будет изменить 0001_initial, как вы предлагаете, чтобы он соответствовал состоянию установленного кода во время выполнения.

2022 WebDevInsider