【发布时间】:2018-04-16 03:58:07
【问题描述】:
在我的模型中,我将字段设为唯一并为其进行了迁移。然后在生产服务器上,这个迁移崩溃了,因为数据库有重复的键。所以我在迁移中添加了以下代码:
def remove_duplicates(apps, schema_editor):
Dir = apps.get_model('myapp.projects.models', 'Dir')
for row in Dir.objects.all():
if Dir.objects.filter(dir_url=row.dir_url).count() > 1:
row.delete()
class Migration(migrations.Migration):
dependencies = [
('projects', '0021_auto_20180412_1215'),
]
operations = [
migrations.RunPython(remove_duplicates),
migrations.AlterField(
model_name='dir',
name='dir_url',
field=models.TextField(unique=True),
),
]
但是如何测试这段代码在我的本地机器上是否工作?当我再次运行manage.py migrate 时,我的函数没有被执行,我收到了消息:
运行迁移:没有要应用的迁移。
【问题讨论】: