大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

Powerdesigner 生成增量SQL脚本

通过PowerDesigner(下面简称PD) 建立模型非常方便,生成基础结构SQL相信大家都会,网上也有很多例子。
但是作为一个懒人,为了让计算机尽量完成更多的工作,减少人工的出错概率,必须更严格要求自己

怎么样方便的根据模型的修改差异生成SQL?

在网上搜索了一圈,都没找到相应的结果。
问了一圈老鸟也没有谁知道,看来还是得自己研究。

对比模型

有人告诉我,Taod 可以通过对比模型,生成差异结果的SQL,顺着这个思路,我是不是每个版本的PDM文件保存好,通过对比就能生成增量的SQL了呢?马上尝试一下。打开「工具」-「Compare Models」:

发现只能查看对比结果和对比报告,不能生成SQL。纠结了10多分钟,尝试失败。

Apply changes to database

漫无目的翻看「帮助」,在「Database」菜单看到了这个选项,灵光一闪,感觉就是它了。有时候要遇到对的人真的需要点运(ren)气(pin),我们先来看看界面。

如果说能自动更新数据库,那么肯定生成的就是根据差异生成的增量SQL,先看看选项:
- Using an archive model
- Using a data source
- Using a script file
- Using a model from repository

就是PD 可以通过与「Archive Model」、数据源、脚本文件、配置库对比,生成增量的更新方案。「data source」和「model from repository」 要跑数据库、「script file」存在不可控的因素,即使能成功,也不方便或者会有问题。那么只剩下一个选项了。

Archive Model

在PD 很多界面不止一次看到「Archive Model」这个选项,但是并不知道是用来做什么的,现在在这里看到这个选项,犹如醍醐灌顶,一下子所有线索就联系起来了。PD可以通过对比最新的模型和存档的模型,生成差异SQL并应用到数据库或者生成增量SQL!

我们马上尝试一下:
- Archive Model 可以通过「另存为」或者「Generate Database」、「Apply changes to database」的『Automatic archive』 生成。这里我先自己另存了一个。
- 在面板里面随意修改一个字段名
- 选择 之前的Archive Model
- 然后选择「script generation」

sql/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2015/1/30 11:03:12                           */
/*==============================================================*/


alter table tb_sender
   change column create_date created datetime;