РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
807 of 818 menu

Команда sqlmigrate

Команда sqlmigrate предназначена для просмотра SQL-кода, который будет выполнен при применении конкретной миграции. Она принимает два обязательных аргумента: имя приложения и имя миграции. Это полезно для проверки того, какие именно изменения в базе данных будут произведены, особенно при использовании сложных операций, таких как добавление полей с внешними ключами или изменение типов данных. Команда не вносит изменений в базу данных, а только выводит сгенерированный SQL.

Синтаксис

python manage.py sqlmigrate app_label migration_name

Где:

  • app_label - имя приложения, для которого просматривается миграция;
  • migration_name - имя файла миграции (например, 0001_initial или 0002_add_field);

Также можно использовать опцию --backwards, которая показывает SQL для отката миграции.

Пример

Предположим, у нас есть приложение blog с миграцией 0001_initial, которая создаёт модель Article. Чтобы посмотреть SQL этой миграции, выполните команду:

python manage.py sqlmigrate blog 0001_initial

Результат выполнения команды (пример для SQLite):

BEGIN; -- -- Create model Article -- CREATE TABLE "blog_article" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(200) NOT NULL, "content" text NOT NULL, "created_at" datetime NOT NULL ); COMMIT;

Пример

Для просмотра SQL-кода, который будет выполнен при откате миграции, используйте флаг --backwards:

python manage.py sqlmigrate blog 0001_initial --backwards

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

BEGIN; -- -- Reverse migration for Create model Article -- DROP TABLE "blog_article"; COMMIT;

Пример

Команда также полезна для проверки изменений в уже существующих таблицах. Например, если мы добавили поле status в модель Article и создали миграцию 0002_add_status, то можно посмотреть SQL:

python manage.py sqlmigrate blog 0002_add_status

Результат выполнения команды (пример для PostgreSQL):

BEGIN; -- -- Add field status to article -- ALTER TABLE "blog_article" ADD COLUMN "status" varchar(20) NOT NULL DEFAULT 'draft'; COMMIT;

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

  • команда migrate,
    которая применяет миграции к базе данных
  • команда makemigrations,
    которая создаёт новые файлы миграций на основе изменений моделей
  • команда showmigrations,
    которая отображает список всех миграций и их статус
  • команда squashmigrations,
    которая объединяет несколько миграций в одну
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить