sql脚本PowerDesigner生成数据库文档

本文介绍如何使用PowerDesigner从SQL脚本逆向生成物理数据模型,并调整表名和字段名以匹配注释,同时提供了生成文档的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目总结,需要用PowerDesigner生成一下数据库文档,遇到了一个小问题记录一下整个生成过程

准备sql脚本(纯洁的脚本)

Navicat导出脚本


不允许保留字段

1.    varchar字段

            `phone` varchar(20) CHARACTER SETutf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '联系方式',

2.    datetime 字段

            `create_time` datetime(0)NOT NULL DEFAULT CURRENT_TIMESTAMPCOMMENT '创建时间',

       `update_time` datetime(0) NOT NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',

可以保留字段

1.    每个字段可以定义NOT NUL DEFAULT 0DEFAULT ''


不可保留表信息(留下commemt就好了)

CREATETABLE `demo` (`id` bigint(20) NOT NULL AUTO_INCREMENTENGINE = InnoDB AUTO_INCREMENT =23 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '演示信息'ROW_FORMAT = Compact;


sql脚本逆向生成pdm

Pd -> 工具栏-> File ->Reverse Engineer  -> database -> 选择 mysql5.0

注解转表name

1.  这里比较重要解决后期遇到的问题

2. Pd中 -> 工具栏-> tools  -> execute commands -> edit/run script  


3. 执行 comment -> name 脚本

Option   Explicit    
ValidationMode   =   True    
InteractiveMode   =   im_Batch    
  
Dim   mdl   '   the   current   model    
  
'   get   the   current   active   model    
Set   mdl   =   ActiveModel    
If   (mdl   Is   Nothing)   Then    
      MsgBox   "There   is   no   current   Model "    
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then    
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. "    
Else    
      ProcessFolder   mdl    
End   If    
  
Private   sub   ProcessFolder(folder)    
On Error Resume Next   
      Dim   Tab   'running     table    
      for   each   Tab   in   folder.tables    
            if   not   tab.isShortcut   then    
                  tab.name   =   tab.comment   
                  Dim   col   '   running   column    
                  for   each   col   in   tab.columns    
                  if col.comment="" then   
                  else  
                        col.name=   col.comment    
                  end if  
                  next    
            end   if    
      next    
  
      Dim   view   'running   view    
      for   each   view   in   folder.Views    
            if   not   view.isShortcut   then    
                  view.name   =   view.comment    
            end   if    
      next    
  
      '   go   into   the   sub-packages    
      Dim   f   '   running   folder    
      For   Each   f   In   folder.Packages    
            if   not   f.IsShortcut   then    
                  ProcessFolder   f    
            end   if    
      Next    
end   sub

双加pdm下的任意表,可以看到comment和name数据一致

生成模板

1.    新增模板 : Pd中 -> 工具栏->report-> report templates... -> 打开或者新建,修改模板


2. 双击可以编辑  %***% 表达式    

3. 右键List  layout 可以构建表格显示的列


生成文档

1. 找到pdm 

2. pd->工具栏->report->Generate Reort->选择刚刚新建的模板-> Rtf  -> Simple chineses

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值