3

我想在我的数据库中使用现有数据在 Django 中进行单元测试。数据库太大,无法进行测试,所以我想转储部分数据。

有什么办法可以倾倒其中的一部分?(我的数据库是 MySQL)

4

3 回答 3

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()
于 2012-11-20T07:57:39.170 回答
1

需要使用转储数据,例如

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

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

于 2012-11-20T07:58:38.203 回答
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

于 2012-11-20T08:12:19.710 回答