2014-01-16 87 views
2

我知道你可以很容易地將YAML文件導入Django數據庫(例如爲了在啓動項目之前填充數據庫),但我怎麼能做到相反(即將完整的數據庫保存到一個.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數據庫引擎。

任何想法?

回答

6

您需要dumpdata管理命令。

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

很大,非常感謝您的提示 –

+1

很酷的事情是,YAML可以作爲一個夾具也與'loaddata' –

+0

沒有爲獲得運行'PIP安裝pyyaml'第一。否則,你會得到'CommandError:無法序列化數據庫:沒有名爲yaml'的模塊 – Hexatonic