我是NodeJS和MongoDB的新手,我开始了一个带有Webstorm的MEAN堆栈的新项目。我有一个空的基础项目,并希望将其提交给Github。
我有一个名为“data”的目录,用于项目的MongoDB部分。只需使用MongoDB设置此目录,就会加载300mb的文件。 gitignore这个数据目录是否安全? Github不喜欢大文件。
MongoDB生成的文件的图片
答案 0 :(得分:2)
您可以安全地忽略mongodb数据文件。
通常数据文件不包含在项目结构中。您只需要在开发计算机上使用这些文件,以便可以在本地运行您的应用程序。将应用程序部署到生产环境后,如果在副本集中运行多个节点,则将连接到另一个可能是完全独立的计算机的数据库。
您还可以将node_modules目录添加到.gitignore
,因为您通常会在部署过程中安装这些目录。
Github为各种语言提供了一些示例.gitignore
文件 - 您可能会发现查看nodejs one
答案 1 :(得分:1)
gitignore这个数据目录是否安全
Yes it is
。这也是一个good practice
gitignore这样的内容,因为它没有任何意义。特别是当mongo正在运行时,其中一些文件被锁定以供mongod独占访问,并且摆弄它可能会损坏您的数据库。
您可以对mongodump
的压缩输出进行版本设置,但这听起来并不疯狂。您可以使用Git hooks
和pre-commit
等post-commit
触发mongodump
,然后压缩备份然后对其进行版本控制。
还有一些在线服务可以让您自动备份mongodb实例,例如MongoDB Monitoring Service
和其他可以谷歌的实例。
我正在开展Node.js
项目,我使用MongoDB
和Neo4j
个数据库。我最近提出了neo4j-shell-tools的一个问题,我希望能够导出我的Neo4j
数据库的图形结构,我可以很容易地在项目结束时对其进行版本回顾并查看如何Neo4j
数据库从头开始演变为功能齐全的数据库。如果我必须回滚到之前的Neo4j数据库结构,那么我下载版本化的图形结构并将其恢复到空数据库中。
MongoDB和Neo4j的数据库都不在我的工作区中,它们位于默认位置。我有以下.gitignore文件,以防你想重用它并包含数据目录的规则(就像我为节点模块做的那样)
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
node_modules/
platforms/
plugins/
hooks/
public/jquery
photos/
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
我还决定不进行版本控制node_modules
,是否要这样做是值得商榷的。
答案 2 :(得分:0)
答案 3 :(得分:0)
您应该使用npm全局安装mongodb模块。
https://docs.npmjs.com/getting-started/installing-npm-packages-globally