eug*_*ene 5 django django-fixtures
如何使用数据装置(或其他序列化记录)中的记录更新已填充的 Django 数据库?
\n我知道我可以使用 Django数据装置来提供初始数据。我可以使用相同的已编写功能从数据固定装置(或类似的序列化数据,如 JSON 文档)更新数据库吗?
\n\xe2\x80\x9cinsert 或从序列化 data\xe2\x80\x9d 操作更新应该是幂等的:
\n具体来说,我可以通过指定pk=null和使用自然键来更新现有行吗?
如何使用现有的 Django \xe2\x80\x9cload data\xe2\x80\x9d 功能(无论是loaddataDjango 中的其他功能)来读取序列化数据,如果记录不存在则插入记录,如果记录存在则更新记录已经存在?
是的,您可以使用loaddata:
python3 -m django loaddata path/to/fixture/some_new_data.json
Run Code Online (Sandbox Code Playgroud)
但:
initial_data.json,否则每次您syncdb或运行South migraton时都会重新加载它,并且会清除自加载夹具以来所做的任何更改。(正如本页中途提到的)根据数据的性质,在 South 使用数据迁移可能会更好。当您只为大量记录设置几个值(例如,更改字段的默认值,或用数据填充空字段)时,数据迁移可能会很好。数据迁移还允许您通过 Python 对事物应用一些检查/逻辑,以便您可以确定要更新的记录,或以不同的方式更新不同的记录,而不是编写大量的固定装置。然而,如果您想加载大量新记录,那么固定装置会更有意义。
| 归档时间: |
|
| 查看次数: |
5468 次 |
| 最近记录: |