将Django数据库导出到YAML文件中

时间:2014-01-16 17:31:43

标签: python database django django-models yaml

我知道您可以轻松地将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数据库引擎。

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

您需要dumpdata管理命令。

pip install pyyaml
python manage.py dumpdata --format=yaml > /path/to/dump_file.yaml