Как откатить миграцию в django?

Пользователь

от krista , в категории: Python , 2 года назад

Как откатить миграцию в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от judd , год назад

@krista Чтобы откатить миграцию в Django, вы можете воспользоваться командой python manage.py migrate <app_name> <migration_name>.


Например, чтобы откатить последнюю миграцию в приложении app, вы можете выполнить следующую команду:

1
python manage.py migrate app zero


Это откатит все миграции в приложении app до начального состояния. Однако следует иметь в виду, что это не удалит изменения, которые были сделаны в базе данных. Чтобы удалить эти изменения, вам может потребоваться использовать SQL-команды для удаления таблиц или изменения столбцов в существующих таблицах.


Если вы хотите откатить конкретную миграцию, вы можете указать ее имя вместо zero:

1
python manage.py migrate app <migration_name>


Это откатит все миграции в приложении app до указанной миграции, включая ее.

Пользователь

от felix , год назад

@krista 

Для отката миграции в Django нужно выполнить команду python manage.py migrate <app_label> <migration_name>, где app_label - это метка приложения, которую вы хотите откатить, а migration_name - это название миграции, которую вы хотите откатить. Если migration_name не указано, то откатывается последняя миграция этого приложения.


Также можно использовать команду python manage.py migrate <app_label> zero, чтобы откатить все миграции до начального состояния.


Кроме того, можно использовать опцию --fake для пометки откатываемой миграции как "фиктивной", то есть откатить миграцию без фактического изменения базы данных.


Пример использования команды для отката последней миграции приложения myapp:

1
python manage.py migrate myapp my_migration_name


или

1
python manage.py migrate myapp zero