gitignore 如何排除 table

gitignore how to exclude a table

我有一个问题。

所以我正在为学校做我的 Django 项目,它快完成了。

此外,我还必须包含一个 .gitignore 文件,如下所示:

venv/*
.idea/*
db.sqlite3

没什么特别的,就是简单。 我的问题是,我在 db.sqlite3 中有一个 table,我的项目中需要这 3 个条目。所以当有人合并我的项目时,这个 table 中的条目应该存在。 否则,您只有一个空的 table,然后我的网站上的功能无法正常工作。

我已经用谷歌搜索了这个,但我刚刚找到了如何排除文件或文件夹。 所以我希望有一个解决方案。

如果您希望您的 sqlite 数据库成为您的存储库的一部分,请执行以下操作:

  • 编辑文件.gitignore
  • 删除或注释掉行 db.sqlite3
  • 将您的数据库添加到存储库:git add db.sqlite3
  • 提交您的更改:git commit -m'Add db.sqlite3 to the repository'
  • 推送您的更改,以便您的同事获取您的数据库:git push

虽然这些步骤回答了你的问题,我认为这样做是一个非常糟糕的主意,我真的鼓励你不要在存储库中包含你的 sqlite 数据库。

Django 的人将该文件放在 .gitignore 中是有原因的。如果你在本地机器上开发,无论你做什么影响数据库(创建或修改表,添加,删除或更新记录等)都会创建 db.sqlite3 的修改版本,你将提交并推送到远程存储库。

现在,假设有其他人与您合作完成该项目。如果您的协作者编辑记录、添加表格或执行任何修改其本地数据库的操作,他将在文件 db.sqlite3 中进行更改。如果他试图将他的提交与你的提交合并,你将在文件 db.sqlite3 中发生冲突,这将很难(如果不是不可能的话)解决。

我不使用 Django,所以我无法在这方面帮助您,但是您需要一种填充(或播种)数据库的方法。 @iklinac 在关于如何为 Django 项目创建初始数据的评论中给了你a link

您向存储库提交的是首次填充数据库的方式,但您将本地数据库保留在存储库之外。