Я пытаюсь написать ловушку pre-commit для моего проекта Django, которая проверяет отсутствие миграций. То есть он гарантирует, что все изменения будут отражены в файле миграции.
Один из способов реализовать это - ПРОЙТИ обработчик предварительной фиксации, если команда makemigrations
не возвращает никаких изменений.
$ ./manage.py makemigrations --dry-run
No changes detected
И чтобы ОТКАЗАТЬ перехватчик предварительной фиксации, если он что-то возвращает:
$ ./manage.py makemigrations --dry-run
Migrations for 'myapp':
myapp/migrations/0003_auto_20201213_2233.py
- Alter field type on event
Как я могу написать эту ловушку перед фиксацией? Есть ли лучший подход, чем использование makemigrations
? Это то, что у меня есть до сих пор, но оно всегда проходит (я думаю, мне нужно разобрать ответ):
repos:
- repo: local
hooks:
- id: pre-commit-django-migrations
name: Check django migrations
entry: ./manage.py makemigrations --dry-run
language: system
types: [python]
pass_filenames: false