将Django模型数据导出为MySQL文件?

时间:2011-11-11 13:33:38

标签: mysql django serialization django-models

我正在编写一个为客户端进行科学计算的Django应用程序,他希望能够将数据导出为MySQL转储文件。有没有一种简单的方法可以做到这一点,还是需要编写自定义序列化器?

2 个答案:

答案 0 :(得分:3)

不需要为此使用Django。 MySQL包含一个为您执行此操作的命令:

mysqldump -u USERNAME -pPASSWORD DATABASE_NAME > DATABASE_FILE.sql

答案 1 :(得分:0)

如果要导出的表结构是常量(可能是),那么编写模板以将其生成为文本输出会很容易。您可以使用Django模板(它们不是特定于HTML的),也可以只使用字符串插值。

类似的东西:

def dump(w, qs):
    for r in qs:
        w.write ("insert into tablename (fieldA, fieldB, fieldC) values ('%s', '%s', %d);\n" % (
            quote(r.fieldA), quote(r.fieldB), int(r.fieldC)))

假设fieldAfieldB是字符串,fieldC是整数,quote()是MySQL安全转义函数。 w参数是类文件对象(可以是Django HttpResponse对象),qs是包含所需数据的查询集。