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

Jul*_*ard 5 python database django yaml django-models

我知道您可以轻松地将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)
Run Code Online (Sandbox Code Playgroud)

但我需要在完整的数据库(它有许多表,每个表之间有复杂的关系)上进行.

我可以写一个脚本为我做这个,但我不想重做已经可能已经完成的事情,我不知道如何更好地做到这一点,以便Django没有困难阅读它.

到目前为止,我一直在研究SQLITE3数据库引擎.

有任何想法吗?

els*_*sar 11

您需要dumpdata管理命令.

pip install pyyaml
python manage.py dumpdata --format=yaml > /path/to/dump_file.yaml
Run Code Online (Sandbox Code Playgroud)

  • 不要先运行`pip install pyyaml`.否则你会得到`CommandError:无法序列化数据库:没有名为yaml`的模块 (2认同)