データを SQL ステートメントにダンプしようとしています。django-admin.py ダンプデータは、json、xml、yaml のみを提供します。それで:
誰かがそれを行う良い方法を知っていますか?!
私はそれを試しました:
デフsqldumper(モデル):
result = "" units = model.objects.all().values() for unit in units: statement = "INSERT INTO myapp.model "+str(tuple(unit.keys())).replace("'", "")+" VALUES " + str(tuple(unit.values()))+"\r\n" result+=statement return result
そのため、モデルの値を自分で調べて、自分で INSERT ステートメントを作成します。次に、「django-admin.py sql」を使用して「CREATE」ステートメントを取得することを考えました..しかし、コード内から(コマンドラインからではなく)この行を使用する方法がわかりません。os.popen と os.system を試しましたが、うまくいきません。
はっきり言えば、コード内から「manage.py sql」をどのように使用しますか?
ビューに次のようなものを追加します。
import os, sys
import imp
from django.core.management import execute_manager
sys_argv_backup = sys.argv
imp.find_module("settings")
import settings
sys.argv = ['','sql','myapp']
execute_manager(settings)
sys.argv = sys_argv_backup
事は-それは動作します..しかし、それはステートメントをstdoutに書き込みます...それは何かですが、完璧ではありません。django.core.management.sql.sql_create を直接使用してみます。
ありがとう