【发布时间】:2021-03-24 20:07:45
【问题描述】:
我正在尝试为我的 Django 项目编写一个 pre-commit 挂钩,以检查是否存在丢失的迁移。也就是说,它确保所有更改都反映在迁移文件中。
实现这一点的一种方法是如果makemigrations 命令没有返回任何更改,则通过预提交挂钩。
$ ./manage.py makemigrations --dry-run
No changes detected
如果 pre-commit 钩子返回一些东西,则它会失败:
$ ./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
【问题讨论】:
标签: django pre-commit-hook pre-commit pre-commit.com