我一直在想这事。
参见此处:Should I be adding the Django migration files in the .gitignore file?
我同意Robert L的观点,它说我们不应该提交迁移。
我的问题是:
- 1)如何忽略迁移文件夹中除 * init . py文件之外的所有迁移?*
- 2)如何删除已提交的迁移?**
我希望避免开发人员之间的任何冲突。
- 应用程序结构示例:**
|_roles
|__pycache__
|___init__.cpython-37.pyc
|_admin.cpython-37.pyc
|_forms.cpython-37.pyc
|_models.cpython-37.pyc
|_urls.cpython-37.pyc
|_views.cpython-37.pyc
|_migrations
|__pycache__
|___init__.cypthon-37.pyc
|___0001_initial.cpython-37.pyc
|___0002_auto_20200111_1307.cpython-37.pyc
|___0003_auto_20200111_1418.cpython-37.pyc
|__init_.py
|_0001_initial.py
|_0002_auto_20200111_1307.py
|_0003_auto_20200111_1418.py
|__init_.py
|_admin.py
|_apps.py
etc..
- .忽略不计*:我在想:
*./migrations/
但这将排除整个文件夹。
2条答案
按热度按时间monwx1rj1#
你可以使用
.gitignore
。前缀为bang(!)的行不排除在gitignore之外。所以你的.gitignore文件看起来像
这将忽略
_migrations
中除__init__.py
之外的所有内容。要删除已提交的文件,可以使用
git rm
和--cached
标志...例如
git rm --cached _migrations/0001_initial.cpython-37.pyc
最后,我也不同意关于不提交迁移的说法。在我看来,提交迁移正是你想要做的。它确保了数据库示例在不同环境下的一致性。虽然Django中的许多迁移都是生成代码,但并不总是这样。最常见的手工编写迁移的地方可能是当有人进行数据迁移时。
简言之,提交迁移.py文件,但排除所有.pyc文件。
9rnv2umw2#
*/移徙/
!**迁移/初始化.py
这段代码足以优雅地忽略迁移