STUDY WHILE YOU ARE BORING


  • 首頁

  • 搜索

  • 技术

  • Tags

  • 关于我

Powerdesigner 生成增量sql脚本

發表於 January 30, 2015   |   作者: Tim   |   分类: 技术   |   评论

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

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

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

对比模型

有人告诉我,Taod 可以通过对比模型,生成差异结果的SQL,顺着这个思路,我是不是每个版本的PDM文件保存好,通过对比就能生成增量的SQL了呢?马上尝试一下。打开「工具」-「Compare Models」:
QQ20150130-1@2x.png
发现只能查看对比结果和对比报告,不能生成SQL。纠结了10多分钟,尝试失败。

Apply changes to database

漫无目的翻看「帮助」,在「Database」菜单看到了这个选项,灵光一闪,感觉就是它了。有时候要遇到对的人真的需要点运(ren)气(pin),我们先来看看界面。
QQ20150130-2@2x.png
如果说能自动更新数据库,那么肯定生成的就是根据差异生成的增量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」
    QQ20150130-3@2x.png
/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2015/1/30 11:03:12                           */
/*==============================================================*/


alter table tb_sender
   change column create_date created datetime;
none
升级Yosemite 10.10.2 QQ截屏不能用了
[MYSQL]让字符串类型的数字按照正确的姿态排序

钜添

56 文章
2 分類
1 页面
GitHub 日记技术
php apache centos macos mysql https shadowsocks mac 微信 ups svn javascript outline accesskey Chrome Extension letsencrypt ssl free certification certbo wildcard renew cloudflare pgsql 归档 binlog isset array_key_exists redmine axure
© 2026 钜添   |   文章 RSS     |  登录
由 Typecho 强力驱动
主題 - NexT
Send message encrypted and private - Msg2
Build your Under Construction Page without hosting - UnderConstruct.IO