【问题标题】:Django migration to delete rows from databaseDjango迁移以从数据库中删除行
【发布时间】:2020-05-12 11:56:13
【问题描述】:

如何通过迁移脚本从具有某些条件的数据库表中删除行? 我需要手动编写还是生成它?如何创建文件?

【问题讨论】:

  • 您想删除行吗?不是字段?
  • 我想你想要一个data migration

标签: django


【解决方案1】:

您需要创建一个空的迁移文件:

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()

然后简单地迁移。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2020-10-19
    • 1970-01-01
    • 2018-12-15
    • 2018-03-04
    • 1970-01-01
    • 2017-01-29
    相关资源
    最近更新 更多