最近项目总结,需要用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_INCREMENT) ENGINE = 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