Вопрос

Я пытаюсь выгрузить свои данные в операторы SQL. django-admin.py dumpdata предоставляет только json, xml, yaml. итак:

  1. Кто-нибудь знает, как это сделать ?!

  2. Я пробовал это:

    def 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" изнутри кода?

Я добавляю к своему обзору что-то вроде этого:

родовое слово

дело в том, что он работает .. но записывает операторы в stdout ... это что-то, но не идеально.Попробую напрямую использовать django.core.management.sql.sql_create, посмотрим, как пойдет ..

спасибо

Это было полезно?

Решение

Я предлагаю использовать программу дампа для SQL (например, mysqldump для MySQL).

Для sqlite, встроенного в Python, вы можете посмотреть этот пример без Django:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top