比较两个数据库表结构差异的小工具
资料简介:
非常简单的原来,大概原理是将远程数据库的syscat.columns数据迁移到本地,
然后再与本地syscat.columns进行比较,得出一个简单的差异报告。
如果把SQL的换行去掉,实际就是简单的20行shell代码搞定这个需求,
之前我们有很多环境,开发环境、测试环境、验收环境还有压力测试环境,
而这些环境的用户密码都开放的,所以很多开发的同事会随手上去修改表结果,最终导致测试的结果不准,
所以我就自己动手写了个脚本,每次在测试之前执行一下,妥妥的轻松检测出表结果的差异
一共有5个参数,按顺序和空格分割输入:
remote_db:远程数据库名,需提前在本地catalog好数据源
remote_user:连接远程数据库的用户名
local_db=:本地数据库
specific_diff_schema:指定比较的模式[选填]
specific_diff_table:指定比较的表[选填]
#example1:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下所有的表结构,以afa(参数2)用户连接srcdb数据库,
#srcdb数据库的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb
#example2:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下hzx模式(参数4)下所有的表结构,
#以afa(参数2)用户连接srcdb数据库,srcdb数据库的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb hzx
#example3:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下hzx模式(参数4)下的TESTDIFF表(参数5)结构,
#以afa(参数2)用户连接srcdb数据库,srcdb的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb hzx TESTDIFF
PS:请在数据库服务端执行
然后再与本地syscat.columns进行比较,得出一个简单的差异报告。
如果把SQL的换行去掉,实际就是简单的20行shell代码搞定这个需求,
之前我们有很多环境,开发环境、测试环境、验收环境还有压力测试环境,
而这些环境的用户密码都开放的,所以很多开发的同事会随手上去修改表结果,最终导致测试的结果不准,
所以我就自己动手写了个脚本,每次在测试之前执行一下,妥妥的轻松检测出表结果的差异
一共有5个参数,按顺序和空格分割输入:
remote_db:远程数据库名,需提前在本地catalog好数据源
remote_user:连接远程数据库的用户名
local_db=:本地数据库
specific_diff_schema:指定比较的模式[选填]
specific_diff_table:指定比较的表[选填]
#example1:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下所有的表结构,以afa(参数2)用户连接srcdb数据库,
#srcdb数据库的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb
#example2:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下hzx模式(参数4)下所有的表结构,
#以afa(参数2)用户连接srcdb数据库,srcdb数据库的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb hzx
#example3:
#对比srcdb数据库(参数1)和tgtdb数据库(参数3)下hzx模式(参数4)下的TESTDIFF表(参数5)结构,
#以afa(参数2)用户连接srcdb数据库,srcdb的差异以大写形式输出,tgtdb数据库的差异以小写形式输出
#./diff_db_table srcdb afa tgtdb hzx TESTDIFF
PS:请在数据库服务端执行
2015-09-21
浏览4029
下载71