Emu*_*Emu 4 sql plsql oracle11g oracle12c
我在一个具有数百个架构和多个开发人员的Oracle实例中工作。我们有一个开发实例,开发人员可以在测试或生产之前集成他们的工作。
我们希望在此集成开发数据库中具有对所有DDL运行的源代码控制。当前,这是通过产品Red Gate完成的,在对数据库进行更改后,我们会手动运行该产品。Redgate查找架构中的内容与上次检查到源代码管理中的内容之间的更改,并制作一个差异脚本,并将其放入源代码控制中。
但是,问题当然是运行regdate可能要花费一些时间,人们很少或很少运行它就可以进行很小的更改。同样,redgate一次只能查看一个模式,并且对所有模式手动运行以确保它们是最新的非常耗时。但是,如果不能依赖源代码,则它的用处就会减少。
似乎理想的是拥有一些可以定期(甚至每天一次)或在运行DDL时触发的软件,从所有模式中更新源代码控制(最好是github,因为其他团队使用了此代码)。
我似乎看不到任何可以简单地用于执行此操作的现有软件。
这样做有问题吗?(无需处理多个开发人员在同一天覆盖彼此的工作,因为我们将其覆盖在单独的流程中)有人在这样做吗?有人可以推荐一种方法吗?
小智 5
我们借助PL / SQL函数,python脚本和shell脚本来执行此操作:
您可以在PasteBin上看到脚本:
Shell脚本:
python schema_exporter.py
d=$(date +%Y-%m-%d__%H_%M_%S)
bzr add
bzr st | grep -q -E 'added|modified' && commit -m "Database objects on $d"
exit 0
Run Code Online (Sandbox Code Playgroud)
此Shell脚本配置为每天从cron运行。
| 归档时间: |
|
| 查看次数: |
4629 次 |
| 最近记录: |