Pregunta

Estoy intentando volcar mis datos en declaraciones SQL. django-admin.py dumpdata proporciona solo json, xml, yaml. entonces:

  1. ¿Alguien conoce una buena manera de hacerlo?

  2. Lo intenté:

    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
    

así que voy a repasar los valores del modelo yo mismo y hago la declaración INSERT. luego pensé en usar "django-admin.py sql" para obtener la declaración "CREATE" ... pero luego no sé cómo usar esta línea desde dentro de mi código (y no a través de la línea de comandos). Probé os.popen y os.system, pero realmente no funciona. ¿Algún consejo sobre eso?

Lo diré claramente: ¿Cómo se usa "manage.py sql" desde el interior de su código?

Agrego algo como esto a mi vista:

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

la cosa es - funciona ... pero escribe las declaraciones en el stdout ... es algo, pero no perfecto.Intentaré usar django.core.management.sql.sql_create directamente, veremos cómo va ..

gracias

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top