如何加快django中大型数据库的数据迁移

如何加快django中大型数据库的数据迁移,django,performance,django-models,Django,Performance,Django Models,我试图从django 1.7应用程序中删除模型继承 models.py 类元素(models.Model): ELEMENT_A='ELEMENT_A' ELEMENT_B='ELEMENT_B' 类型=( (要素A,‘要素A’), (元素_B,‘元素B’) ) number=models.CharField(最大长度=255) type=models.CharField(最大长度=10,选项=type,默认值=ELEMENT\u A) 数量=型号。整数字段(默认值=1) 类ChildEleme

我试图从django 1.7应用程序中删除模型继承

models.py

类元素(models.Model):
ELEMENT_A='ELEMENT_A'
ELEMENT_B='ELEMENT_B'
类型=(
(要素A,‘要素A’),
(元素_B,‘元素B’)
)
number=models.CharField(最大长度=255)
type=models.CharField(最大长度=10,选项=type,默认值=ELEMENT\u A)
数量=型号。整数字段(默认值=1)
类ChildElement(元素):
旧编号=models.CharField(最大长度=30,唯一性=True)
旧数量=模型。整型字段()
我的迁移文件

def forwards\u remove\u heritance(应用程序、架构编辑器):
childs=apps.get_模型(“核心”、“ChildElement”)
类型=元素。元素
对于childs.objects.all()中的c:
c、 编号=c.旧编号
c、 数量=旧数量
c、 类型=类型
c、 保存()
回来
def backward_remove_heritance(应用程序、架构编辑器):
回来
类迁移(migrations.Migration):
依赖项=[
]
操作=[
migrations.RunPython(
向前\u删除\u继承,向后\u删除\u继承
),
]
我的迁移需要几个小时,我在app_ChildElement表中有超过750k个元素


有什么想法吗?

使用queryset
update
,例如:

ChildElement.objects.all().update(number=F('old_number'))

我找到的解决方案是在操作中直接使用原始SQL更新数据库

class RemoveChild(操作):
可逆=真
定义初始化(自):
通过
def状态转发(自身、应用标签、状态):
通过
def数据库_转发(self、app_标签、schema_编辑器、from_state、to_state):
schema_editor.execute(““”更新元素
SET Element.number=ChildElement.old\u number,Element.quantity=ChildElement.old\u quantity,Element.type='Element\u B'
来自元素
内连接子元素
在ChildElement.element_ptr_id=element.id;
""")
def数据库_向后(self、app_标签、schema_编辑器、from_state、to_state):
通过
def描述(自我):
返回“删除子继承模型”

谢谢@GwynBleidD,但这对继承的模型不起作用
django.core.exceptions.FieldError:无法将关键字u'old_number'解析到字段中。选项包括:…编号、数量、类型