Blog Entry

PowerDesigner与Mysql同步

PowerDesigner与Mysql同步

Created
2022/11/04
Updated
2022/11/04

环境

  • Windows 10
  • PowerDesign 16.5.3982
  • Mysql 8.0.28

准备

PowerDesinger

  • 建立一个物理模型: Demo.pdm
  • 建一张表: t_user
    • 目前有三个字段: id, user_name, nick_name

Mysql

# 创建数据库
CREATE DATABASE demo DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
# 授权用户(xkyii)拥有库的所有权限
GRANT ALL PRIVILEGES ON demo.* TO "xkyii"@"%" WITH GRANT OPTION;
FLUSH PRIVILEGES;

连接

安装ODBC

  • MySQL :: Download Connector/ODBC下载ODBC驱动,选32bit

  • 下载并安装ODBC后,以管理员权限打开PowerDesigner, 打开User.pdm

  • Database -> Connect

    • -> Connect to a Data Source -> Configure
    • -> ODBC Machine Data Sources -> Add Data Source
    • -> 用户数据源 -> MySQL ODBC 8.0 Unicode Driver
    • -> 填数据库信息
  • 填完之后应该就能连接上了

PowerDesigner -> Mysql

  • Database -> Generate Database
  • Direct Generate
  • 甚至执行之前还给预览一下
  • 执行完到数据库看一下:

Mysql -> PowerDesigner

开发过程中经常遇到的情况是来不及从PowerDesigner开始,加个字段,生成sql, 建模到Mysql,且不说任务很可能是分散在多个开发同学的身上,改几次字段,几套操作下来身心俱疲, 很快就会进入各管各字段, 几轮开发之后PDM就名存实亡了.

这时我们就需要从Mysql直接同步回PowerDesigner模型了

比如:

  • 添加字段 (new_field)

  • ,修改字段(user_name -> name)

  • 删除字段(nick_name)

  • 回到PowerDesigner

  • 注意选对schema,默认会选全部,避免导入不需要的表

  • 可能是哪里操作的问题,逆向出来还是把整个数据库的内容给搞出来了 :(

  • 所有的更改都展示出来了, 先点一下Unselect All, 然后仔细检查每个表的每个字段, 把需要落实的更改勾选上

  • OK, 可以看到,模型已经修改过来了

    • 说明: 期间t_user可能与其他schema中的t_user表冲突,导致有些字段的修改看不出来, 中途改成了t_demo_user

%%经常出现连不上的问题,持担忧态度%%

以上