如何在Django中转储我的部分数据库

时间:2012-11-20 06:47:39

标签: mysql django testing

我想在我的数据库中使用存在的数据进行Django中的单元测试。数据库对于测试来说太大了,所以我想转储部分数据。

有没有办法抛弃其中的一部分? (我的数据库是MySQL)

3 个答案:

答案 0 :(得分:4)

您可以更改此部分models.MyModel.objects.all()以获取灯具中的选择性数据。

from django.core import serializers
from myproject.myapp import models
data = serializers.serialize("json", models.MyModel.objects.all())
out = open("mymodel.json", "w")
out.write(data)
out.close()

答案 1 :(得分:1)

需要使用dumpdata例如

python manage.py dumpdata --format=json --indent=2 --exclude=admin --exclude=sessions > test_db.json

在这里,我将数据库中除了admin和sessions表之外的所有内容(我猜你可能不需要这些表)转储到名为test_db.json的json文件中。我也使用2个空格的缩进来使文件更容易通过眼睛检查。

答案 2 :(得分:0)

您可以尝试使用 mysqldump

您需要查找要转储的表的所有名称。要获得完整列表,您可以使用:

mysqlshow db_name

然后运行:

mysqldump db_name table_1 table_2 table_3 table_4

此命令会将结果输出到标准输出,如果要将其写入文件,请使用--result-file=/path/to/file

另请参阅mysqldump的完整文档:http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html