Команда dbshell

Команда dbshell используется для запуска командной оболочки для базы данных, настроенной в проекте Django. Она автоматически определяет тип базы данных (PostgreSQL, MySQL, SQLite и другие) и подключается к ней с использованием учетных данных из файла настроек. Команда не принимает дополнительных аргументов и запускается из терминала.

Синтаксис

bashpython manage.py dbshell

Для выполнения команды необходимо находиться в корневой папке проекта, где расположен файл manage.py. После запуска открывается интерактивная оболочка базы данных, в которой можно вводить SQL-запросы. Выход из оболочки осуществляется стандартной для каждой СУБД командой (например, exit или \q).

Пример . С SQLite

Запустим оболочку для SQLite базы данных и выполним простой запрос к таблице с пользователями:

bashpython manage.py dbshell

После запуска оболочки выполним SQL-запросы:

sqlSELECT * FROM auth_user;

Результат выполнения кода:

sql1|admin|pbkdf2_sha256$...|1|2026-01-01 10:00:00|1|admin@example.com|1|1|2026-01-01|admin
2|john|pbkdf2_sha256$...|1|2026-01-02 12:30:00|0|john@example.com|1|1|2026-01-02|john

Пример . С PostgreSQL

Для проекта с PostgreSQL команда подключается с использованием параметров из настроек проекта. Выполним запрос к таблице статей:

bashpython manage.py dbshell

В оболочке PostgreSQL выполним запрос:

sqlSELECT title, created_at 
FROM myapp_article 
WHERE status = 'published' 
ORDER BY created_at DESC;

Результат выполнения кода:

sqltitle         | created_at
--------------------+----------------------
"Third article"   | 2026-01-03 15:20:00
"Second article"  | 2026-01-02 11:10:00
"First article"   | 2026-01-01 09:00:00

Пример . С MySQL

Для MySQL команда использует клиент mysql. Запросим количество записей в таблице категорий:

bashpython manage.py dbshell

В оболочке MySQL выполним запрос:

sqlSELECT COUNT(*) FROM myapp_category;

Результат выполнения кода:

sql"COUNT(*)"
"10"

Смотрите также

  • команда shell,
    которая запускает интерактивную оболочку Python
  • команда inspectdb,
    которая генерирует модели по существующим таблицам
  • команда sqlmigrate,
    которая выводит SQL для миграции
  • команда showmigrations,
    которая показывает статус примененных миграций