我有一个数据工程管道,它基本上是每晚扫描数据表,用前端客户端查看的计算填充主表。这个管道需要大约6个小时才能完成。我没有删除主表并在6个小时内写入计算,而是将计算写入临时表(这样,在生成今天的计算时,主表仍具有前一天的计算)。完成后,我尝试让Django ORM删除主表,并在一个事务中将临时表中的所有新计算插入到主表中。有没有一个有效的方法来使用Django ORM来做到这一点?谢谢!另请注意,临时模型和主模型具有完全相同的字段副本。
h7appiyu1#
你可以在模型的同一个应用程序中创建一个python脚本,该脚本基本上会在临时表上使用for循环,提取字段数据,然后将其传递给主表进行添加。由于它们具有完全相同的字段,并且可能具有相同的验证器,因此在保存到主表时不需要显式指定字段名,只需将临时表中的每一行直接传递到主表并保存即可。
INSERT INTO <maintable> SELECT * FROM <temptable>;
1条答案
按热度按时间h7appiyu1#
你可以在模型的同一个应用程序中创建一个python脚本,该脚本基本上会在临时表上使用for循环,提取字段数据,然后将其传递给主表进行添加。
由于它们具有完全相同的字段,并且可能具有相同的验证器,因此在保存到主表时不需要显式指定字段名,只需将临时表中的每一行直接传递到主表并保存即可。