Как я могу отменить это (случайное) наследование таблиц в Django?

У меня есть библиотека приложений django в производстве, и я обнаружил серьезный недостаток.

Библиотека объявляет AbstractMyModel, от которой наследуется конкретная MyModel. Пользователи библиотеки могут установить приложение и использовать MyModel напрямую, или просто импортировать абстрактные модели, чтобы делать с ними что-то свое.

Проблема в том, что AbstractMyModel не абстрактен. Я забыл включить class Meta(), объявляющий abstract=True.

Итак, у меня в основном есть наследование таблицы в производстве:


class AbstractMyModel(models.Model):
    """Abstract model... EXCEPT IT'S NOT!!!"""

    name = models.SlugField(
        help_text="name",
        unique=True,
    )


class MyModel(AbstractMyModel):
    """ARGH - the abstract one isn't actually abstract
    But I've got this in production - there are two actual tables from
    AbstractMyModel and MyModel. How can I sort this mess out?"""

ВОПРОС: Как бы мне мигрировать из этого, чтобы разрушить наследование и в итоге получить таблицу MyModel как конкретную, а AbstractMyModel как действительно абстрактную?

ТИА!

Вернуться на верх