django - Django 迁移已通过,但字段未删除
问题描述
我有一个生产中的 django 应用程序,上周我想从我的用户模型中删除一个字段 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 命令传递,但是,当我想从管理区域添加用户时,我得到了这个异常:
“review_rate”列中的空值违反了非空约束。
如果我转到我的容器,选择任何用户并尝试在其上获取 review_rate,我会按预期收到此错误:
AttributeError:“用户”对象没有属性“review_rate”
所以 review_rate 字段似乎没有被删除,但我的新费率字段存在..
有人可以解释如何解决它吗?谢谢。
解决方案
推荐阅读
- sas - SAS 如果变量存在且小于 1,则执行
- reactjs - Typescript - ...没有兼容的调用签名
- apache-spark - 针对不同类型顶点的高效 GraphFrame
- ios - 如何检查我的用户是否已经登录,并使用 NSUserDefaults 转到特定的视图控制器
- postgresql - Postgres中具有相同别名的两列
- perl - Perl NET::SSH2 让通道处于活动状态
- python - 将灰度图像转换为较小的“逐像素”灰度图像
- c# - 基于一个模型属性显示模型的属性
- javascript - Android 获得唯一的 Firebase 令牌并使用云功能进行身份验证
- android - android - 无法解析配置“:_armv7DebugApkCopy”的所有依赖项