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

dumpdataを使用する必要があります。

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

ここでは、adminテーブルとsessionsテーブル(おそらくこれらは必要ないかもしれません)を除くデータベース内のすべてを、という名前の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 に答える