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

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

  1. 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令

    小白我因为最近开发的一系列项目都是用的laravel框架,所以为了方便有时候就会直接复制一份代码以此作为新项目的基础.可能因为"因为夜路走多了,所以掉坑里了">>> ...

  2. Ruby on Rails,创建和执行migrations迁移文件

    在<Ruby on Rails,rake工具使用和数据库migrations迁移的概念>中,我们知道Rails中进行数据库迁移操作的基本概念和重要性.现在着手进行一个简单的数据库迁移实践吧 ...

  3. SQL Server数据库mdf文件中了勒索病毒 mercury。扩展名变为 mercury

    2019-01-24 15:57:27 SQL,数据库,勒索病毒,mdf文件中毒,mercury *SQL Server数据库mdf文件中了勒索病毒.mdf.mercury.mercury SQL S ...

  4. python数据库迁移教程_django中的数据库迁移的实现

    Django是用python写的web开发框架,其特点是: 1.重量级框架,内部封装了很多的功能组件,使开发变的简便快速, 2.MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能 ...

  5. idea java gitignore,关于idea的gitignore文件编写及解决ignore文件不生效问题

    1.下载idea的 <.ignore> 插件,重启idea生效 2.添加自己想要忽略的文件夹及文件,一般选这个就够了 3.如果想要忽略提交的文件夹名称变成黄色了,就代表成功忽略该文件夹了! ...

  6. 【Unreal4】gitignore目录减小项目大小

    在Unreal项目文件中,Binaries目录存放编译结果的二进制文件.每次编译都会生成,故可以gitignore掉来减小项目内容 文章目录 gitignore方法 检验是否ignore 检验方法一 ...

  7. ASP.NET和.NET Core项目.gitignore模板

    我们往代码仓库中提交代码时,如果将所有文件都提交上去,会提交很多临时目录和文件(如:bin目录中生成的dll文件,log日志,obj目录中的临时编译文件),这些文件会严重干扰我们的代码管理,因此需要将 ...

  8. linux svn忽略添加,Ubuntu svn 中添加忽略文件的方法

    下面为大家简单明了的讲解下Ubuntu svn 中添加忽略文件的方法,使用过 Git 忽略文件的人可能初次接触 svn 的忽略文件的方式不是很习惯,在 git 中,只要添加 .gitignore 文件 ...

  9. [yocto]基于poky项目创建自己的层并且在层中增加自己的配方文件

    基于poky项目创建自己的层并且在层中增加自己的配方文件 1.本地获取poky git clone git://git.yoctoproject.org/poky 建议使用kirkstone分支 gi ...

最新文章

  1. apache实现URL地址隐藏跳转
  2. 【转】SAP中的FTP操作样例
  3. 关于Panel隐藏横向滚动条
  4. MATLAB把多行多列矩阵数据和文字写入txt文件
  5. 2018广技师C语言专插本试题,2018年成功插本广技师 ,分享备考经验!附:复习时间表...
  6. 用SublimeText当Unity Shader的编辑器
  7. 福利 | 干大事,成大事,2018 幸福如是!
  8. 小米手机困境,米粉伤心,黄牛伤钱
  9. Python全栈学习_day010作业
  10. [AutoSar]开发工具 Vector系列和EB系列
  11. 洛谷P3768 简单的数学题
  12. LINUX SHELL中数组的使用
  13. Android之音频和视频的提取
  14. 交互设计理论之格式塔理论与四大法则
  15. 哪里看最新行业研报?
  16. centos7 安装最新rabbitmq,并设置开机自启
  17. C语言文本文档汉字乱码处理问题
  18. 在图片上加滚动文字html,如何让文字在图片上滚动
  19. 编程这工作究竟是在干什么?
  20. 施耐德电气:“三步走”实现配电数字化,制胜可持续未来

热门文章

  1. nodejs request module里的json参数的一个坑
  2. 实拍Jerry Wang去德国出差期间居住的美丽的德国小镇
  3. SAP云平台,Netweaver,Kubernetes和C4C的用户和角色关系
  4. ABAP,Java, nodejs和go语言的web server编程
  5. 位地址和字节地址换算_面试常考,项目易错,长文详解C/C++中的字节对齐
  6. 计算机如何去除桌面名称阴影,电脑桌面图标有阴影怎么去掉 电脑桌面图标阴影去掉方法【图文】...
  7. 云南计算机专升本数据结构_怎么查找云南省2019年专升本计算机专业试题
  8. 磁盘io php,PHP CURL如何处理上传内存中文件,避免磁盘IO开销
  9. 地址栏地址 获取_直播源获取工具,支持斗鱼、虎牙、B站、企鹅电竞、YY、抖音、西瓜直播!...
  10. java自带的xml解析,使用Java自带SAX工具解析XML