首页 > 数据库 >powerdesigner从sql脚本生成pdm文件

powerdesigner从sql脚本生成pdm文件

时间:2024-08-20 10:52:08浏览次数:9  
标签:COMMENT comment name DEFAULT powerdesigner pdm sql NULL view

1、File-->Reverse Engineer(逆向工程)-->Database

2、选择数据库类型,我的是MySQL所以选择MySQL5.0

3、选择脚本文件

脚本内容:

 

查看代码
DROP TABLE IF EXISTS `drawing_library`;
CREATE TABLE `drawing_library`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '图纸库id',
  `file_id` bigint NULL DEFAULT NULL COMMENT '文件id',
  `project_id` bigint NOT NULL COMMENT '项目id',
  `engineering_code` varchar(60)  NULL DEFAULT NULL COMMENT '工程编码',
  `engineering_name` varchar(255)  NULL DEFAULT NULL COMMENT '工程名称',
  `file_org_level` bigint NULL DEFAULT NULL COMMENT '文件层级',
  `drawing_code` varchar(255)  NOT NULL COMMENT '图纸编码',
  `version` varchar(10)  NOT NULL COMMENT '版本',
  `file_status` int NULL DEFAULT NULL COMMENT '状态',
  `drawing_name` varchar(255)  NOT NULL COMMENT '图纸名称',
  `delivery_channel` bigint NULL DEFAULT NULL COMMENT '接收渠道',
  `receive_time` datetime NULL DEFAULT NULL COMMENT '接收时间',
  `page_count` int NULL DEFAULT NULL COMMENT '页数',
  `page_format` varchar(10)  NULL DEFAULT NULL COMMENT '图幅',
  `dispatch_code` varchar(255)  NULL DEFAULT NULL COMMENT '发文编号',
  `dispatch_time` datetime NULL DEFAULT NULL COMMENT '发文日期',
  `edit_unit` varchar(255)  NULL DEFAULT NULL COMMENT '编制单位',
  `record_person_id` varchar(40)  NULL DEFAULT NULL COMMENT '登记人',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_user_id` varchar(40)  NULL DEFAULT NULL COMMENT '修改人id',
  `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) COMMENT = '图纸库' ;

 

确定生成pdm:

4、将备注挪到powerdesigner的name

上面的步骤其实已经生成了pdm文件,但是name部分都是英文,不直观,我们把comment挪至name,便于观看,这时需要执行一个vbs脚本,如下:

1) Tools-->Execute Commands-->Edit/Run Script...

 

2) 在弹出框输入如下脚本,然后单击run

 

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

效果:

 

另外,附一个name转到comment的脚本:

'把pd中那么name想自动添加到comment里面
'如果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 

'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view 
'   of   the   current   folder 
Private   sub   ProcessFolder(folder)    
      Dim   Tab   'running     table    
      for   each   Tab   in   folder.tables    
            if   not   tab.isShortcut then
                     if  trim(tab.comment)="" then'如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
                        tab.comment   =   tab.name
                     end if  
                  Dim   col   '   running   column    
                  for   each   col   in   tab.columns   
                        if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
                           col.comment=   col.name   
                        end if 
                  next    
            end   if    
      next    
  
      Dim   view   'running   view    
      for   each   view   in   folder.Views    
            if   not   view.isShortcut and trim(view.comment)=""  then    
                  view.comment   =   view.name    
            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

 

标签:COMMENT,comment,name,DEFAULT,powerdesigner,pdm,sql,NULL,view
From: https://www.cnblogs.com/zjfblog/p/18368996

相关文章

  • show processlist查看Mysql当前正在运行的线程
    showprocesslistshowprocesslist;--或者SELECTid,db,user,host,command,time,state,infofrominformation_schema.PROCESSLISTWHERE1=1--andcommand!='Sleep'ANDHOSTLIKE'%localhost%'orderbytimedescID定义:每个连......
  • SQL中的索引知识点复习文档
    SQL中的索引知识点复习文档此文档是数据分析课程入门篇关于索引知识点的复习文档,本次课程目标是回顾索引的分类、特点及常用操作,此课程代码练习较少,主要为理论知识的快速复习复习时间:2024年8月18日文档总结:2024年8月18日学习时长:视频课程1小时+文档总结1小时课程环境......
  • PostgreSQL之继承
    继承表PostgreSQL支持表继承,这是一种将多个表组织成一个继承层次结构的方式。在表继承中,一个父表可以定义一组共享的列和约束,并可以有多个子表继承这些定义,并可以添加自己的额外列和约束。下面是关于如何使用PostgreSQL继承表的一些重要概念和用法:CREATETABLEemployees(......
  • postgresql 定时收集表和索引统计信息 转发:https://blog.csdn.net/weixin_33711641/a
    --由于pg中表和索引的信息收集都是基于时间点的,对于以往的信息无法与现在的信息进行对比,故写下此工具进行统计信息收集--创建数据信息的schemacreateschemadb_stat;--创建收集信息的基础表createtabledb_stat.snapshot_pg_stat_all_indexes(relidint,indexrelidint,scheman......
  • 【MYSQL】在MySQL中设置 max_allowed_packet、wait_timeout 和 interactive_timeout
    目录重要配置参数临时设置参数1.使用SQL语句设置1.检查当前设置持久化设置修改配置文件在Linux上重启MySQL服务:在Windows上重启MySQL服务:注意事项示例:使用BLOB存储大数据总结解决连接断开问题的总结在处理大于1MB的数据时,MySQL数据库可能会遇到......
  • 入门mysql数据库
    mysql的入门使用既然我们要使用mysql就要知道为什么要使用mysql持久化把数据保到可掉电式存储设备中以供之后使用,数据持久化意味着将内存中的数据保存到硬盘上加以“固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要作用是将内存中数据存储在关系型......
  • mysql windows、Ubuntu安装与远程连接配置
    下载在Windows下安装MySQL需要在官网下载安装包官网地址www.mysql.com找到社区下载选择适用于Windows的MYSQL安装程序选择自己电脑对应的版本和所要下载的mysql版本一般是5.7版本和8.0版本按照图片上的选项进行安装到此就安装完成了需要自己手动配置环境变......
  • 第三章---MySQL基本管理
    数据库基本管理MySQL启动关闭流程mysql是一个典型的C/S服务架构1.mysql自带的客户端程序(/service/mysql/bin)mysqlmysqladminmysqldump2.mysqld是一个二进制程序,后台的守护进程单线程多线程1、启动数据库1、/etc/init.d/mysqldstart--->mysql.server---......
  • 一文入门mysql 数据库
    一、数据库概述什么是数据库    数据库是一个用于存储和管理数据的仓库。数据按照特定的格式存储,可以对数据库中的数据进行增加、修改、删除和查询操作。数据库的本质是一个文件系统,按照一定的逻辑结构组织数据,以方便高效地访问和维护。什么是数据库管理系统 ......
  • [Mysql]日志刷盘总结
    Mysqlredolog的刷盘时机mysql正常关闭的时候redologbuffer写入超过一半的时候后台线程每隔一秒写入磁盘一次0把redologbuffer中的内容刷盘2把pagecache中的内容刷盘事务提交的时候0每次提交事务,redolog留在buffer中不写入磁盘1每次提交事务,redolog写入磁......