【发布时间】:2013-06-08 10:14:58
【问题描述】:
我如何使用数据夹具(或其他序列化记录)中的记录更新已填充的 Django 数据库?
我知道我可以使用 Django data fixtures to provide initial data。我可以使用相同的已编写功能从数据夹具(或类似的序列化数据,如 JSON 文档)更新数据库吗?
“从序列化数据插入或更新”操作应该是idempotent:
- 如果数据库中不存在记录(按其键),则应插入该记录。
- 如果数据库中已经存在一条记录(通过其键),则应更新它以匹配数据夹具。
- 最终状态应该是数据夹具中的所有数据都应该在数据库中更新,无论记录是否已经存在。
具体来说,我可以通过指定pk=null 并使用自然键来更新现有行吗?
我如何使用现有的 Django “加载数据”功能(无论是 loaddata 还是 Django 中的其他类似功能)来读取序列化数据,如果它们不存在则插入记录,如果它们已经存在则更新它们存在?
【问题讨论】: