我想在我的数据库中使用现有数据在 Django 中进行单元测试。数据库太大,无法进行测试,所以我想转储部分数据。
有什么办法可以倾倒其中的一部分?(我的数据库是 MySQL)
您可以更改此部分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()
需要使用转储数据,例如
python manage.py dumpdata --format=json --indent=2 --exclude=admin --exclude=sessions > test_db.json
在这里,我将数据库中除 admin 和 sessions 表(我猜你可能不需要这些)之外的所有内容转储到名为 .json 的 json 文件test_db.json
中。我还使用缩进 2 个空格来使文件更易于肉眼检查。
您可以尝试使用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