Создание миграций
Миграции в Django позволяют сохранять изменения в структуре базы данных, сделанные в процессе разработки. При создании или изменении моделей, для применения изменений в базе данных необходимо создать миграцию. Для создания миграции используйте команду makemigrations
:
python manage.py makemigrations
Применение миграций
После создания миграции, необходимо применить ее к базе данных. Для этого используйте команду migrate
:
python manage.py migrate
Просмотр списка миграций
Чтобы увидеть список всех миграций и их текущее состояние, используйте команду showmigrations
:
python manage.py showmigrations
Откат миграций
В случае необходимости откатить миграцию, можно использовать команду migrate
с указанием имени приложения и миграции, до которой нужно откатиться:
python manage.py migrate myapp 0002_auto_20220101_1234
Создание пользовательских миграций
Иногда требуется выполнить определенные действия в процессе миграции, не связанные с изменением структуры базы данных. В таком случае вы можете создать пользовательскую миграцию. Для этого создайте файл миграции вручную в директории migrations
вашего приложения, и импортируйте класс migrations.Migration
для создания пользовательской миграции:
from django.db import migrations
def do_something(apps, schema_editor):
# Ваш код здесь
class Migration(migrations.Migration):
dependencies = [('myapp', '0002_auto_20220101_1234'),]
operations = [migrations.RunPython(do_something),]
Удаление миграций
Если миграция больше не нужна или вызывает ошибки, вы можете удалить ее. Сначала убедитесь, что миграция откатывается, затем удалите файл миграции из директории migrations
вашего приложения. После удаления файла миграции, не забудьте выполнить команду makemigrations
для создания новой корректной миграции:
python manage.py makemigrations
Использование миграций в командной строке
Миграции также можно использовать в командной строке для быстрого просмотра состояния миграций и отката изменений. Например, чтобы просмотреть список всех миграций и их статус, выполните команду showmigrations
. Чтобы откатиться к предыдущей миграции, используйте команду migrate
с именем приложения и миграции, до которой хотите откатиться.