.gitignore文件_Django项目.gitignore文件建议忽略文件清单及是否需要忽略数据库迁移文件...

c11d4c9a5f60f34e3ee07fa77da05080.png

Django项目开发或改动完成后将本地代码提交到代码库(比如github)时,我们需要考虑哪些文件需要提交,哪些不需要提交。这是因为有些库文件(比如缓存文件),本地日志文件还有一些编译文件是不必要提交的。这时我们可以使用.gitingnore文件忽略不需要提交的文件。本文介绍如何创建.gitignore文件,哪些Django项目文件建议忽略提交,并重点介绍我们是否需要忽略数据库迁移文件。

创建.gitignore文件

1. 首先安装git,网上教程很多,我就不多说了。

2. 在需要创建.gitignore文件的文件夹(通常为Django项目文件夹,而不是app文件夹), 右键选择Git Bash 进入命令行,进入项目所在目录。

3. 输入 touch.gitignore,生成.gitignore文件。

4. 用notepad或者vim命令在.gitignore 文件里输入你要忽略的文件夹及其文件就可以了。

Django项目建议忽略的文件清单

一般缓存文件__pycache__和本地日志文件.log不需要提交。media文件夹和db.sqlite3文件可能包括了本地测试数据和文件,也不要提交。PyCharm生成的文件, Env文件第三方package也不要提交。下列文件和文件夹建议忽略。

# Django #

*.log

*.pot

*.pyc

__pycache__

db.sqlite3

media

# Backup files #

*.bak

# If you are using PyCharm #

.idea/**/workspace.xml

.idea/**/tasks.xml

.idea/dictionaries

.idea/**/dataSources/

.idea/**/dataSources.ids

.idea/**/dataSources.xml

.idea/**/dataSources.local.xml

.idea/**/sqlDataSources.xml

.idea/**/dynamic.xml

.idea/**/uiDesigner.xml

.idea/**/gradle.xml

.idea/**/libraries

*.iws /out/

# Python #

*.py[cod]

*$py.class

# Distribution / packaging

.Python build/

develop-eggs/

dist/

downloads/

eggs/

.eggs/

lib/

lib64/

parts/

sdist/

var/

wheels/

*.egg-info/

.installed.cfg

*.egg

*.manifest

*.spec

# Installer logs

pip-log.txt

pip-delete-this-directory.txt

# Unit test / coverage reports

htmlcov/

.tox/

.coverage

.coverage.*

.cache

.pytest_cache/

nosetests.xml

coverage.xml

*.cover

.hypothesis/

# pyenv

.python-version

# celery

celerybeat-schedule.*

# SageMath parsed files

*.sage.py

# Environments

.env

.venv

env/

venv/

ENV/

env.bak/

venv.bak/

# mkdocs documentation

/site

# mypy

.mypy_cache/

# Sublime Text #

*.tmlanguage.cache

*.tmPreferences.cache

*.stTheme.cache

*.sublime-workspace

*.sublime-project

# sftp configuration file

sftp-config.json

# Package control specific files Package

Control.last-run

Control.ca-list

Control.ca-bundle

Control.system-ca-bundle

GitHub.sublime-settings

Django数据库迁移文件是否需要上传

数据库迁移文件位于每个app文件夹的migrations文件夹里,这些文件记录了模型的创建与改动。每次当你创建模型或对模型字段进行修改,然后运行python manage.py makemigrations命令时都会有新的迁移文件产生。Django官方文档特别说明这些迁移文件属于Django项目代码中很重要的一部分,不应删除或忽略,所以建议上传。然而实际项目开发中,不同人可能对同一个模型做出了不同或甚至相反的改动,如果都向同一代码库提交,容易造成迁移文件冲突。综合前人们在stackoverflow上的讨论,小编总结了Django数据库迁移文件是否需要上传的答案。

开发环境

如果项目尚处于开发阶段,你可以选择提交,也可以选择不提交。每次在你创建模型或对模型进行改动后,可以直接使用python manage.py makemigrations根据models.py重新生成迁移文件,而不需要保留之前迁移文件版本。如果你从github上clone的项目里没有迁移文件,你可以使用同样命令生产迁移文件,然后使用python manage.py migrate对数据库中的表做出修改。

生产环境

如果项目已经处于生产环境,那么这时本地因对模型做出修改而产生的迁移文件也是需要提交的。不过千万要记住,在生产环境的机器上,不要使用python manage.py makemigrations再生成一遍迁移文件,而应直接使用python manage.py migrate根据已经提交的迁移文件对数据库中的表做出修改。

总而言之: 在大多数情况下,Django的迁移文件都是需要提交的,不建议忽略。即使发生冲突,也可以使用python manage.py makemigrations --merge 合并冲突。

参考资料

Gitignore for a Django project

Should I be adding the Django migration files in the .gitignore file?

Best practices for adding .gitignore file for Python projects?

大江狗

2019.12.25

e843fe9a56aa86b9ce66a5c5d4ceb42a.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值