Domanda

Sto cercando di eseguire il dump dei miei dati su istruzioni SQL. django-admin.py dumpdata fornisce solo json, xml, yaml. quindi:

  1. qualcuno conosce un buon modo per farlo ?!

  2. Ci ho provato:

    def sqldumper (modello):

    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
    

quindi esaminerò personalmente i valori del modello e formulerò personalmente l'istruzione INSERT. poi ho pensato di usare "django-admin.py sql" per ottenere l'istruzione "CREATE" .. ma poi non so come usare questa riga dall'interno del mio codice (e non tramite la riga di comando). Ho provato os.popen e os.system, ma non funziona davvero .. qualche consiglio in merito?

Lo metterò chiaramente: come si usa "manage.py sql" dall'interno del codice?

Aggiungo qualcosa del genere alla mia opinione:

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

il fatto è che - funziona .. ma scrive le istruzioni nello stdout ... è qualcosa, ma non perfetto.Proverò a usare direttamente django.core.management.sql.sql_create, vedremo come va ..

grazie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top