2015-03-23 2 views
5

Когда я вношу изменения в некоторые модели, я хочу посмотреть SQL, с которым django будет работать для реализации этих изменений в БД.Django - просмотр sql-запроса без внесения изменений publishinhg

Обычный способ сделать это - сделать «makemigrations appname». Это приведет к миграции, скажем, «0001_someName.py». Тогда можно сделать «sqlmigrate 0001_someName.py»

Но я хочу напрямую просмотреть sql, не создавая промежуточную миграцию. Это можно сделать?

ответ

3

Django не предоставляет эту опцию. Вы всегда можете создать миграцию, запустите sqlmigrate и удалите файл миграции. Пока он не применяется с migrate, ничего не произойдет.

2

Run

python manage.py sql <appname> 

- Печатает операторы TABLE SQL для данного имени (ы) приложения CREATE.

python manage.py sqlall <appname> 

- Распечатывает инструкции CREATE TABLE и исходные данные SQL для данного имени (ов) приложения.

Здесь вы найдете подробную документацию. https://docs.djangoproject.com/en/1.8/ref/django-admin/

+1

те не 'manage.py' команды, но' Джанго-admin' команды, как вы также ссылаются на – Steen

+0

@Steen Они» то же самое, он даже говорит об этом в ссылке – Izkata

+0

Эти команды устарели в Django 1.9 https://docs.djangoproject.com/en/1.9/internals/deprecation/#deprecation-removed-in-1-9 @amit -sharma ответ следующий лучший вариант – jarbaugh

10
python manage.py sqlmigrate <appname> <migration no eg. 0001 or 0004> 

это будет выполнять определенную миграцию приложения. Но если вы хотите, чтобы показать все SQL для конкретных приложений использовать эту функцию:

python manage.py sqlmigrate <appname> 
Смежные вопросы