我开始在 SQL Developer 上进行 PL/SQL 开发。我在 DEV 环境中的工作将如何被推送到 QA,然后最终被推送到 PROD?
Posted
技术标签:
【中文标题】我开始在 SQL Developer 上进行 PL/SQL 开发。我在 DEV 环境中的工作将如何被推送到 QA,然后最终被推送到 PROD?【英文标题】:I started out on PL/SQL Development on SQL Developer. How will my work in the DEV environment be pushed to QA and then eventually PROD? 【发布时间】:2019-04-05 13:45:04 【问题描述】:我的理解是,推动更改可能是 DBA 的工作,就像刷新一样,但没有 DML(数据操作)。
任何 cmets/建议都会很棒!
【问题讨论】:
通常我看到开发人员将他们的工作作为脚本提交给 DevOps / DBA 以运行。有时,开发人员只会提交他们创建的对象的名称,而 DBA 会将 DDL 自己从 DEV 拉到 QA 等。 希望你有一个源代码控制系统来跟踪你的数据库代码的变化,在任何数据库之外。也希望你有测试/开发系统。最后希望您或某人正在编写迁移/升级/安装脚本以应用您的更改 - 通常使用 SQLcl/SQLPlus 之类的东西 这是一个很好的问题,但对于 Stack Overflow 来说太宽泛了。这是一个很大的话题,有很多不同的方法可以解决这个问题。充分描述即使是一种方法也需要一整章。人们会在这个话题上激烈地争论不休。我对这个话题有强烈的看法,但最好的建议可能是“做你组织中其他人所做的任何事情”。 【参考方案1】:对此没有简单的答案,但基本上任何计算机语言的代码部署任务都是相似的,数据库组件的主要区别是
-
我们无法删除和重建表,因为我们需要保留它们的内容。
我们的代码在数据库中编译,因此无需部署二进制文件。
PL/SQL 开发的第一条规则是,您应该始终、始终使用源代码控制的文件,例如,mypackage
的代码将位于名为 mypackage.pck
的源文件中(或任何最有效的文件扩展名)使用您选择的 IDE,只要它不是 .sql
)。当您不关心保留更改时,请勿直接编辑数据库源代码,除非进行琐碎的测试。
有些网站只进行增量部署,而另一些网站则对主要版本使用完全拆解并从发布分支重建,这需要更多思考,但最终更清洁。然后部署包括运行脚本、重新编译模式以及可能运行一些测试和检查以确保它工作正常。您将需要一个分支策略,也许是某种 '运行此文件夹中的所有内容' 脚本,以及理想情况下的一些工具,例如 Team City 或 Jenkins,以尽可能地自动化,尽管我没有认为 PL/SQL 的现成产品与 Java 等更主流的语言一样多。
部署过程通常由应用程序支持团队执行,因为它不需要任何 DBA 权限,除非您正在创建架构或角色等,尽管某些站点可能以不同的方式组织支持角色。
【讨论】:
【参考方案2】:是的。部分将涉及 DBA。但是,作为开发人员,您可能需要通过导出(可能在文件中)到 DBA 来提供整个 DDL 脚本以进行部署。
检查此链接的“导入和导出 SQL 脚本”部分以导出 db 脚本:https://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25309/sql_rep.htm#BABBHEHA
【讨论】:
以上是关于我开始在 SQL Developer 上进行 PL/SQL 开发。我在 DEV 环境中的工作将如何被推送到 QA,然后最终被推送到 PROD?的主要内容,如果未能解决你的问题,请参考以下文章
走向云端:Oracle SQL Developer Web 即将上线!
PL/SQL Developer从11.0.6版本开始32/64为之区分
ORACLE PL/SQL:在 Oracle SQL Developer 中测试 SELECT FOR UPDATE