Oracle 和 GitLab

问题描述 投票:0回答:2

我正在寻找一种工具、脚本或方法来将代码(一旦开发过程完成)从 Git 远程存储库传输回我的 Oracle 数据库。 目前,我只知道一种编写 yaml 文件的方法,该文件列出了存储库中我想要推回数据库的每个文件。

我的实际代码现在看起来像这样(数据库连接名称是示例):

阶段: - 建造

构建: 阶段:构建

  script: 
    - "sqlplus abc/cde@//OracleDevelop@abc_packages/WAREHOUSE1.plsql"
    - "sqlplus abc/cde@//OracleDevelop@abc_functions/WAREHOUSE1_NG.plsql"
    - "sqlplus abc/cde@//OracleDevelop@abc_procedures/COPY_PACKAGE.plsql"
    - "sqlplus abc/cde@//OracleDevelop@abc_types/NUMLIST.plsql"

现在,我不想列出需要返回数据库的每个文件。我想要一些机制来自动化它。最好的情况是 GUI,以便开发人员可以运行一个脚本,在该脚本中他可以通过拖放来决定他想要将哪些文件返回到数据库中。

显然有一种方法可以购买已经实现了这些功能的商业版本控制系统,但我的公司想要开发一个基于 shell 脚本本身的 GUI...

是否有人可能拥有有效的脚本或界面或知道如何使其变得更简单?

oracle jenkins deployment gitlab continuous-integration
2个回答
1
投票

几个月前我问了这个问题,当时我正准备向一家数据库开发公司引入 Git 版本控制,而该公司迄今为止还没有版本控制。 由于我已经解决了这个问题,我想我会为有同样问题的人分享我的步骤......

一开始,我不知道如何找到一种方法在 Oracle 数据库、不同编辑器(SQL Developer、VS Code 等)和 GitLab 之间创建流畅的开发循环。

最终目的是让开发人员在开发过程中尽可能轻松地对数据进行版本控制、记录和存储。因此,需要从数据库中提取/导出代码,将其带到 GitLab,进行编译和构建,然后带回(不同的)数据库,例如一个开发数据库和一个产品数据库。

基本上,我的步骤是

  1. 使用数据库浏览器(例如 SQL Developer)中的 filedump 函数/导出函数从数据库中提取文件,或者就我而言,为此任务编写特定的 python 脚本。我用 xyz 或示例替换了所有关键信息...

  1. 在 GitLab 中创建远程存储库并将所有文件(保留数据库层次结构)上传到 GitLab 存储库。
  2. 克隆存储库并创建本地存储库。
  3. 编写一个 yaml 文件,将文件带回 Oracle 数据库,并在新提交推送到存储库时触发。

yaml 文件中最重要的一行是构建过去 5 分钟内推送的代码并将其带回数据库的命令。

-"git diff --stat ('git diff --stat @{5.minutes.ago} --name-only') do sqlplus xyz"

xyz 需要替换为您的 Oracle 数据库凭据,例如SCHEMA/密码@//实例/名称

  1. 设置一个 Jenkins 服务器,从存储库中获取某些文件并将它们放入不同的数据库中。这相当简单,Jenkins 中的所有内容都有 GUI。

如您所见,我们使用 yaml 和 Jenkins 来处理两个不同的数据库。这是有意为之的,因为我们同时拥有开发数据库和生产数据库。因此,我们希望能够单独解决这些问题。 yaml 脚本应该在推送提交时触发并立即更新开发数据库。稍后,当文件被视为已完成(不需要更多开发)时,高级工程师可以继续使用 Jenkins 将此文件传输到生产数据库中。


0
投票

我无法评论,所以询问答案部分。 我需要像你一样表现。 但从你的回答中,我不知道如何执行该 python 和 yaml 文件以及它的实际用途是什么。 我们可以用另一种简单的方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.