【发布时间】:2019-08-16 23:30:00
【问题描述】:
TL;DR 版本
当我在 GitHub 上搜索时,某个文件夹中的文件使我的搜索结果变得混乱。我只需要这些文件用于存档目的,所以虽然我不想删除它们,但我想我可以定期将它们移动到单独的分支以清理 master 中的这个文件夹。
问题是如何以简单、可重复且不会过多污染我的历史的方式做到这一点。
上下文
我(我们)的情况,我们有一个 git 存储库,它保存我们数据模型的当前状态。所以它有一个名为TAB_ORDER.sql 的文件,其中包含用于创建表的create table 语句。
这些文件基本上是使用 RedGate Schema compare 生成的。
此外,存储库包含帮助我们部署更改的迁移脚本。拉取请求预计将包含对目标文件的更改,以及使其在实时数据库上发生的迁移。因此,要向该表添加一列,在单个 PR 中,我将添加一个带有 alter table TAB_ORDER 语句的迁移文件以添加一列,我将修改 TAB_ORDER.sql 以便其中的 create 语句代表新状态表,包括新列。
到目前为止一切顺利。
问题
问题是,我喜欢使用 GitHub 来搜索某些数据库对象的用途,因为它速度很快,而且它允许我搜索我们所有的存储库。但是我的搜索被所有迁移脚本污染了。理想情况下,我想从搜索中排除那些,但 GitHub 不支持,而且看起来不会很快。
所以我基本上有两个选择,除了坚持下去:
- 完全删除迁移脚本。
- 将迁移保存在单独的分支中,但不在 master 中。
我更喜欢后者,所以我实际上可以保留我的迁移脚本,如果我愿意,可以搜索这些脚本。当然,已删除的文件会保留在历史记录中,但要找到这些文件并不容易,因此保留它们不被删除是一种偏好。
我的解决方案(我需要帮助)
如何轻松地将这些迁移脚本移动到单独的存档分支。鉴于我希望开发人员通过迁移和修改创建单个 PR,归档将是一个我可以定期执行的单独过程,但我真的不知道将文件从主文件“移动”到基本上是一个分支。
当然也欢迎替代解决方案。
【问题讨论】:
-
您使用的是 Oracle 还是 SQL Server?我为 Redgate 工作,我们很感兴趣的是您正在脚本文件夹中搜索对象引用。我们想知道是否应该在工具中更好地解决文件搜索而不是文件搜索?
-
是的,有不同的搜索方式。如果我只在该存储库中搜索,文件是一个选项。我什至可以在数据库本身中进行搜索。但是 GitHub 真的很快(它是一个相当大的 Oracle 数据库),我也用它来搜索其他代码库的其他 repos。特别是如果我想查找其他项目使用了某个数据库对象,GitHub 非常方便,因为我们有几十个存储库,我什至没有将它们全部检出。 GitHub 可以一次搜索所有这些。如果我想检查更改的影响,这是一个非常有用的工具。
-
明白。感谢您发布解决方案。我也不知道 -path ,所以我也学到了一些东西!为了其他用户的利益,也许我们甚至应该在某个地方记录这个“技巧”:)