【发布时间】:2020-05-12 11:56:13
【问题描述】:
如何通过迁移脚本从具有某些条件的数据库表中删除行? 我需要手动编写还是生成它?如何创建文件?
【问题讨论】:
-
您想删除行吗?不是字段?
-
我想你想要一个data migration
标签: django
如何通过迁移脚本从具有某些条件的数据库表中删除行? 我需要手动编写还是生成它?如何创建文件?
【问题讨论】:
标签: django
您需要创建一个空的迁移文件:
python manage.py makemigrations <app_label> --empty
打开生成的文件并添加一个新的操作:
operations = [
migrations.RunPython(delete_some_rows) # name_of_the_function_to_be_called_to_delete_rows
]
在迁移文件中定义函数:
def delete_some_rows(apps, scheme_editor):
model = apps.get_model('app_label', 'model_name')
model.objects.filter(...).delete()
然后简单地迁移。
【讨论】: