0

我在 Visual Studio 2017 上创建了一个 Oracle 数据库项目第 2 版,并将现有数据库导入到项目中以获取我项目中的数据库模式,并且我在我的项目中获得了此类对象的 SQL 文件。问题是,例如,当我修改表并将更改保存在我的 oracle 数据库项目中并构建它时,我得到一个创建脚本作为输出而不是更改脚本,因此该脚本无法部署到我的数据库,原因是“现有对象错误”。

我试图通过继续模式比较选项来做到这一点:

  • 我通过提到我的 oracle 数据库项目作为源和我的数据库作为目标来启动模式比较
  • 比较的结果表明源和目标之间有一个不相同的对象,即表格(因为我在表格中添加了一个列)

同样的问题是,当我生成更新脚本时,它给出了一个删除/创建表脚本而不是一个更改,我无法部署这个脚本,因为我会丢失数据。

有没有人有任何想法?如何通过构建项目或启动模式比较操作来获取更改脚本?

4

1 回答 1

0

我发现比较两个数据库确实会生成一个“有点”正确的差异脚本(它可能需要一些手动调整)。因此,您可以针对不同的 oracle 实例运行数据库项目生成的 SQL 文件,然后对两者进行比较。

于 2018-10-23T00:46:11.407 回答