许多人在工作中常常会遇到升级的事情对于不同的用户有时所使用的数据库的表结构也会有一些不同时间长了往往就需要一份各版本数据库表结构的差异报告了当你需要一份这样的报告时你会怎么做?一个个的比较每个库的每个表每个表的每个字段每个字段的定义索引……都过于繁琐本问将主要介绍一个半自动化的方法详细内容请大家参考下文
前提条件你的机器里要有MS Visio这个软件里有一个[数据库——数据库模型图]的绘图类型我就是用它来实现比较数据库表结构之间的差异的
第一步打开Visio新建一个数据库——数据库模型图的文件绘图文件打开后选择主菜单的数据库反向工程这时会弹出反向工程向导从现有数据库中提取数据库架构配置好你的数据源就是要比较的数据库(一般是旧版数据库)按提示会要你输入用户名密码的然后就会让你选择要进行反向工程的对象类型自己选择吧你关心什么样的数据库结构就选什么好了好了下一步选择要进行反向工程的表和/或视图全选好啦再下一步这里问你是否要将形状添加到当前页我建议你还是不要添加了否以后再添加形状再下一步检查一下没问题就按完成吧至此源数据库的结构已经创建好了保存一下文件吧
第二步在源数据库模型图文件中选择主菜单的数据库—刷新模型这时会弹出刷新模型向导和原来的反向工程向导基本一样在这里请选择你要比较的数据库(一般是新版数据库)按提示会要你输入用户名密码的然后……就开始比较当前数据库和存储在模型中的数据库映像之间的差异了在这里会有一个报告给你这个报告你即可信也不要全信为什么前面说是半自动化的方法呢原因就在这有差异他会全部列出来没有差异的地方他也会列出来OK自己辛苦下按这个报告的提示咱自己一一验证出个权威性的数据库结构差异报告吧
至此差异报告出来了
大家可以按此方法两两比较很快你的总报告就完成了不过这个方法只适合比较表结构如果有些固化信息已经写在表内容里就不适合这个方法了