Pergunta

Estou tentando despejar meus dados em instruções SQL. o django-admin.py dumpdata fornece apenas json, xml, yaml. então:

  1. alguém conhece uma boa maneira de fazer isso ?!

  2. Eu tentei isso:

    def sqldumper (modelo):

    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
    

portanto, vou revisar os valores do modelo sozinho e fazer a instrução INSERT sozinho. então pensei em usar "django-admin.py sql" para obter a instrução "CREATE" .. mas não sei como usar esta linha de dentro do meu código (e não através da linha de comando). Tentei os.popen e os.system, mas realmente não funcionam .. alguma dica sobre isso?

Vou ser bem claro: como você usa o "manage.py sql" de dentro do seu código?

Eu adiciono algo assim à minha visão:

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

o que acontece é que funciona .. mas grava as instruções no stdout ... é algo, mas não perfeito.Vou tentar usar django.core.management.sql.sql_create diretamente, veremos como funciona ..

obrigado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top