【问题标题】:Export Django Database into YAML file将 Django 数据库导出到 YAML 文件中
【发布时间】:2014-01-16 17:31:43
【问题描述】:

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

有什么想法吗?

【问题讨论】:

    标签: python database django django-models yaml


    【解决方案1】:

    您需要dumpdata 管理命令。

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

    【讨论】:

    • 很酷的是 yaml 也可以用作夹具,loaddata
    • 不要先运行pip install pyyaml。否则你会得到CommandError: Unable to serialize database: No module named yaml
    • 添加到这个答案,如果你只使用python manage.py dumpdata > test.json,它将输出json格式,你不需要安装pyyaml
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2020-05-18
    • 2021-09-02
    • 1970-01-01
    • 2013-09-10
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多