[原创]用PowerDesigner制作数据库升级脚本

 
很多人使用PD的时候就问有没有制作自动升级脚本的功能。其实是有的。
操作原理: 1、保存原来的版本,另存为apm的文件,生成一个Archive Model。 2、生成升级脚本,需要选择原来的版本
操作步骤: 1、打开PDM文件,选择Save as .... 另存为,在弹出的窗口中选择apm的文件类型,输入文件名保存即可。 2、修改相关的数据模型的内容,然后保存。 3、选择DataBase菜单中的modify database... 菜单 4、在弹出的窗口中设置升级脚本的目录及文件名后,在synchronization页框中的obtains database schema中选择using an archive model: 选择原先保存的apm文件。后面的其它页框设置与生成脚本的类似。
5、点一下确定,PD就会自动生成数据库的对比信息,弹出一个database synchronization窗口,这里这个窗口里列出了所有的差异信息,你可以选择需要升级的内容。点ok就可以看到升级脚本了。

生成脚本分析: 总体来讲还是很智能化的一个工具。 比如增加一个列,生成就的脚本就很简单。脚本如下: alter table SY_MsgSend add Column_8 CHAR(10) /
在删除列的时候就充分体现出智能化的升级脚本,如下所示,做了一个删除列的操作会生成一系列的升级脚本:

/*==============================================================*/ 
/* Database name: Database */
/* DBMS name: ORACLE Version 9i */
/* Created on: 2007-9-6 11:12:26 */
/*==============================================================*/ alter table SY_MsgReceiver drop constraint FK_SY_MSGRE_SY_MSGREC_SY_MSGSE / drop table tmp_SY_MsgSend cascade constraints / /*==============================================================*/
/* Table: tmp_SY_MsgSend */
/*==============================================================*/ create table tmp_SY_MsgSend (
MS_ID NUMBER(10) not null,
MS_Content VARCHAR2(4000),
MS_SendTime DATE,
MS_Type VARCHAR2(4),
MS_Sender NUMBER(8),
MS_Status NUMBER(1) default 1 not null,
MS_MsgSource NUMBER(2) default 1 not null,
Column_8 CHAR(10) ) / insert into tmp_SY_MsgSend (MS_ID, MS_Content, MS_SendTime, MS_Type, MS_Sender, MS_Status, MS_MsgSource)
select MS_ID, MS_Content, MS_SendTime, MS_Type, MS_Sender, MS_Status, MS_MsgSource from SY_MsgSend / drop table SY_MsgSend cascade constraints / /*==============================================================*/
/* Table: SY_MsgSend */
/*==============================================================*/ create table SY_MsgSend (
MS_ID NUMBER(10) not null,
MS_Content VARCHAR2(4000),
MS_SendTime DATE,
MS_Type VARCHAR2(4),
MS_Sender NUMBER(8),
MS_Status NUMBER(1) default 1 not null,
MS_MsgSource NUMBER(2) default 1 not null,
constraint PK_SY_MSGSEND primary key (MS_ID) ) tablespace TBS_EOFFICE / insert into SY_MsgSend (MS_ID, MS_Content, MS_SendTime, MS_Type, MS_Sender, MS_Status, MS_MsgSource)
select MS_ID, MS_Content, MS_SendTime, MS_Type, MS_Sender, MS_Status, MS_MsgSource from tmp_SY_MsgSend / /*==============================================================*/
/* Index: Index_47 */
/*==============================================================*/
create index Index_47 on SY_MsgSend ( MS_Sender ASC ) tablespace TBS_IDX_Eoffice / alter table SY_MsgReceiver add constraint FK_SY_MSGRE_SY_MSGREC_SY_MSGSE foreign key (MS_ID)
references SY_MsgSend (MS_ID) on delete cascade /

最新文章

  1. Xcode真机测试could not find developer disk image解决方法
  2. <转>关闭 程序崩溃时 windows 正在检查该问题的解决方案
  3. [JBoss] - JBAS015874: JBoss AS 7.1.1.Final "Brontes" started - Eclipse中不能正常启动的解决方法
  4. [译]ASP.NET 性能监控
  5. MySQL语句进行分组后的含有字段拼接方法
  6. SVN switch 用法详解
  7. HDU 4000 Fruit Ninja 树状数组 + 计数
  8. VS2005中乱码问题
  9. #pragma CODE_SEG __NEAR_SEG NON_BANKED/#pragma CODE_SEG DEFAULT
  10. poj 3281 Dining【拆点网络流】
  11. 为什么 UDP 有时比 TCP 更有优势
  12. 从零开始学java(小游戏 石头剪刀布)
  13. php.ini中最好禁止的一些函数
  14. 【Android】属性动画
  15. django初探-创建简单的博客系统(二)
  16. Django设置查看原生SQL语句
  17. uni-app 在input获取焦点(弹出软键盘后收起软键盘),页面不下滑,留下下方空白
  18. vue 使用小结 2019.03
  19. etcd-v2第二集
  20. 2019.02.11 bzoj4767: 两双手(组合数学+容斥dp)

热门文章

  1. JMS学习之路(一):整合activeMQ到SpringMVC
  2. flex自适应小例子
  3. 将android Settings 源码 导入到 eclipse工程
  4. JS中URL编码参数(UrlEncode)
  5. struts2学习笔记(5)---自己定义拦截器
  6. JDK安装目录下的src
  7. canvas写的一个小时钟demo
  8. js数组的操作<转>
  9. 在ASP.NET Core中如何支持每个租户数据存储策略的数据库
  10. 微信小程序客服消息实时通知之最佳实践
  11. Android 报错:error: too many padding sections on bottom border
  12. 有了这 4 大特性,CDN 好用到飞起
  13. EntityFramework Inner Exception Catch
  14. eclipse中opencv配置
  15. bind函数详解(转)
  16. STM32的ISP下载程序方式:
  17. 服务器webapi集成极光推送学习笔记
  18. Python基础(10)——类进阶(静态方法、类方法、属性方法)
  19. Python常见问题系列
  20. clscfg.bin: error while loading shared libraries: libcap.so.1: