У меня была модель Django, которая выглядела следующим образом:
class Foobar(models.Model):
baz = models.CharField(max_length=12, default=some_func)
some_func
существовало в файле /someproj/utils/utils.py
Это было хорошо, и все было хорошо.Я создал свою миграцию для этой модели и работал как ожидалось.Грубо говоря, миграция выглядела так:
from __future__ import unicode_literals
from django.db import migrations, models
import someproj.utils.utils
class Migration(migrations.Migration):
dependencies = [("someproj", "0008_auto_20180928_0002")]
operations = [
migrations.CreateModel(
name="Foobar",
fields=[
(
"baz",
models.CharField(
default=someproj.utils.utils.some_func,
max_length=12,
serialize=False,
),
),
],
)
]
Потом я позже понял, что хочу переименовать some_func
во что-то другое.Я переименовал функцию в utils.py, и, конечно, теперь миграция завершается ошибкой, поскольку some_func больше не существует.Если я изменяю миграцию вручную, это работает, но эмпирическое правило, которое мне объяснили, заключается в том, что вы (почти) никогда не редактируете миграцию вручную.
Как можно приспособить это изменение?Вы должны редактировать миграцию вручную?Разве это не было бы проблематично, если бы мне пришлось запускать более старую версию кода (то есть, скажем, мне нужно было оформить предыдущий коммит до момента переименования)?