PowerDesigner 从PG(postgresql)导出模型无法解析字段信息

        最近因工作需要,需要从已有的pg数据库反向生成模型,因此就想到了要用powerdesigner来进行模型反向生成。PowerDesigner版本为16.5.0,PG数据库版本为12.0+.

        前期基本步骤大相径庭:

        1.新建pg odbc链接:

        1.1windows系统打开设置,搜索odbc:

        1.2 点击选择64位的odbc数据源,并查看是否存在pg数据库类型

1.3 点击添加 查看是否支持pg

1.4 如果不支持pg,则需要下载安装PG的odbc驱动包,然后再重新创建odbc链接

https://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_16_00_0000.zip

1.5 按照提示内容,填写pg数据库信息,创建odbc链接

2.进入powerdesigner进行反向生成数据模型

2.1 File->Reverse Engineer->Database

2.2 选择数据库版本和命名模型名称

2.3 设置反向生成模型参数,选择之前创建的odbc链接

2.4 选择需要导出的表模型,点击OK

2.5 查看模型,发现字段没有正确导出

3.解决问题

3.1 查看pwoerdesigner的日志信息:Unable to list the columns.
ERROR: column "adsrc" does not exist;
Error while preparing parameters
SQLSTATE = 42703

3.2 根据日志,判断出是因为高版本的pg,pg_attrdef表中移除了adsrc字段,需要修改对应处理的脚本,菜单操作路径如下:

3.3 将右侧内容中的adsrc替换成pg_get_expr(f.adbin, f.adrelid),整体效果如下:

修改前:

修改后:

4.更新模型数据

4.1Database->Update Model from Database

4.2 点击ok,查看模型是否正确

总结:

多看工具运行日志,从根因排查问题,其实这个问题就是数据库版本和powerdesigner预置的查看columns的脚本不兼容所致。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值