我应该如何将DDL更改从一种环境迁移到另一种环境?
我使用SQLDeveloper的GUI进行DDL更改。问题是,我需要将那些相同的更改应用于测试环境。我想知道其他人如何处理这个问题。当前,我必须手动编写ALTER语句以使测试环境与开发环境保持一致,但这容易出错(两次执行相同的操作)。在测试环境中没有重要数据的情况下,我通常会把所有东西丢掉,从dev中导出DDL脚本,并在测试中从头开始运行它们。
我知道有一些触发器可以存储每个DDL更改,但这是一个高度共享的环境,如果可能,我想避免这种情况。
也许我应该只手动编写DDL东西,而不要使用GUI?
-
我已经看到了一种“我不知道如何做”的方法来尝试解决此问题,最后,我认为您只需要维护手动脚本即可。
现在,您不必一定要自己写。在MSSQL中,当您进行更改时,有一个用于生成脚本的小按钮,它将吐出一个SQL脚本来进行您所做的更改。我知道您在谈论Oracle,距我使用他们的GUI已有好几年了,但我只能想象他们具有相同的功能。
但是,您无法摆脱手动使用脚本的麻烦。关于现有数据,您将遇到很多问题,例如新列的默认值或如何处理重命名/删除/移动的列的数据。这只是随着时间的推移而无法摆脱的使用数据库模式的分析的一部分。如果您尝试使用完全自动化的解决方案来执行此操作,则迟早会弄乱您的数据。
我建议做的一件事,就是让您的生活更轻松一些,请确保将架构更改与代码更改分开。不同之处在于,对表和列的模式更改必须准确地运行一次,并且永远不要再次运行,因此必须作为单独的更改脚本进行版本控制。但是,代码更改(例如存储的proc,函数甚至视图)可以(并且应该)反复运行,并且可以像其他任何代码文件一样进行版本控制。我看到的最好的方法是在VSS中拥有所有proc
/函数/视图时,我们的构建过程将删除所有过程/函数/视图,并在每次更新期间重新创建它们。这与重建C#/ Java
/任何代码的想法相同,因为它确保所有内容始终都是最新的。
-
如何在詹金斯中将现有工作从一种观点转移到另一种观点?
2021-01-31 关注 0 浏览118 1答案
-
如何将一种数据类型的所有Sql列更改为另一种
2021-05-10 关注 0 浏览109 1答案
-
Java:如何将变量从一种类型动态转换为另一种类型?
2021-02-02 关注 0 浏览110 1答案
-
将值从一种形式传递到另一种形式
2021-02-02 关注 0 浏览533 1答案
-
如何缓慢地将对象的颜色从一种改变为另一种?
2021-01-30 关注 0 浏览140 1答案
-
在Java中从一种基础转换为另一种基础
2021-01-31 关注 0 浏览92 1答案
-
如何将一种数字类型的切片转换为另一种类型
2021-02-01 关注 0 浏览111 1答案
-
一种学习中习得的具体的、特殊的经验直接迁移到另一种学习中去,或经过某种要素的重新组合,以迁移到新情境中去叫做______迁移。
2022-05-21 关注 0 浏览12 1答案
-
迁移是一种学习对另一种学习的影响,影响较大的迁移论述主要有
2022-05-21 关注 0 浏览14 1答案
-
从一种控制器方法重定向到另一种控制器方法
2021-02-02 关注 0 浏览116 1答案