django 如何忽略迁移而忽略__init_.py?

jk9hmnmh  于 2023-03-04  发布在  Go
关注(0)|答案(2)|浏览(132)

我一直在想这事。
参见此处: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/

但这将排除整个文件夹。

monwx1rj

monwx1rj1#

你可以使用.gitignore。前缀为bang(!)的行不排除在gitignore之外。
所以你的.gitignore文件看起来像

_migrations/*
!_migrations/__init__.py

这将忽略_migrations中除__init__.py之外的所有内容。
要删除已提交的文件,可以使用git rm--cached标志...

--cached
Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.

例如
git rm --cached _migrations/0001_initial.cpython-37.pyc
最后,我也不同意关于不提交迁移的说法。在我看来,提交迁移正是你想要做的。它确保了数据库示例在不同环境下的一致性。虽然Django中的许多迁移都是生成代码,但并不总是这样。最常见的手工编写迁移的地方可能是当有人进行数据迁移时。
简言之,提交迁移.py文件,但排除所有.pyc文件。

9rnv2umw

9rnv2umw2#

*/移徙/

!**迁移/初始化.py
这段代码足以优雅地忽略迁移

相关问题