我知道你可以轻松地将一个YAML文件导入到Django数据库中(例如在启动项目之前填充数据库),但是如何做相反的操作(即将整个数据库保存为单独的.yaml文件)。
我看到有一种方法可以将一个单独的表导出到一个文件中:
YAMLSerializer = serializers.get_serializer("yaml")
yaml_serializer = YAMLSerializer()
with open("file.yaml", "w") as out:
yaml_serializer.serialize(SomeModel.objects.all(), stream=out)
但我需要在完整的数据库上进行操作(这个数据库有许多表格,它们之间存在复杂的关系)。
我可以编写一个脚本来完成这项任务,但我不想重复做已经完成的工作,而且我也不知道如何更好地完成这项任务,以便Django在读取后没有困难。
到目前为止,我一直在使用SQLITE3数据库引擎。
有什么建议吗?
loaddata
即可。 - Csaba Tothpip install pyyaml
。否则会出现CommandError: Unable to serialize database: No module named yaml
的错误。 - Hexatonicpython manage.py dumpdata > test.json
,它会输出 JSON 格式,你不需要安装 PyYAML。 - FrankZhu