Миграция Django прошла, но поле не было удалено
У меня есть приложение django в production, на прошлой неделе я хотел удалить поле из моей модели пользователя, review_rate, чтобы заменить его M2M отношением с другой таблицей.
Результирующая миграция:
# Generated by Django 2.2.1 on 2021-07-20 16:41
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0080_auto_20210708_1539'),
]
operations = [
migrations.SeparateDatabaseAndState(state_operations=[
migrations.CreateModel(
name='Rate',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
options={
'db_table': 'api_project_reviewers',
},
),
migrations.RemoveField(
model_name='user',
name='review_rate',
),
migrations.AlterField(
model_name='project',
name='reviewers',
field=models.ManyToManyField(related_name='review_project', through='api.Rate',
to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='rate',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Project'),
),
migrations.AddField(
model_name='rate',
name='user',
field=models.ForeignKey(limit_choices_to={'reviewer': True},
on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
])
]
Локально работает нормально.
Когда я развертываю его, я вижу, что моя миграция существует и проходит с помощью команды showmigrations, однако, когда я хочу добавить пользователя из зоны администратора, я получаю следующее исключение:
null значение в столбце "review_rate" нарушает ограничение not-null.
Если я перехожу в свой контейнер, выбираю любого пользователя и пытаюсь получить review_rate по нему, я получаю эту ошибку, как и ожидалось:
AttributeError: объект 'User' не имеет атрибута 'review_rate'
SO поле review_rate не удаляется, как должно быть, НО мое новое поле rate существует...
Может кто-нибудь объяснить, как это исправить? спасибо.