要用Powdersigner同步表结构到PostgreSql数据库,
Powdersigner 版本是 16.5,当前模型是mysql的
Database --> Change Current DBMS

选择PostgreSQL 最大版本的(因为Powdersigner内置版本一般比较小,因此选择最大的)

最好32位和64位的都安装下
打开控制面板 --> 管理工具 或者直接搜索 管理工具


双击进行去,点击添加:



点击test连接成功就没问题。
可以32位的也一起添加下。
后面设置连接要用到





Connection profile: pg
Directory:设置一个值
Description:随便填
Connection type:JDBC
DBMS type:PostgreSQL
User name:数据库用户名
JDBC driver class:选择对应驱动,点击下拉选择
JDBC connection URL:jdbc:postgresql://ip:port/database
JDBC driver jar files:选择从官网下载的jar包【https://jdbc.postgresql.org/download.html】
点击连接,如果报错:

点击 Tools --> General Options --> Variables:
如下图所示,确保jdk的路径是对的

找到jdk对应bin目录,然后点击对应类型的xxx.exe
网上的解决思路是按照JDK32位,然后进行相关项配置
如下为网上百度的解决思路:
1、把64位的jdk换成32位的jdk 2、系统变量: CLASSPATH = D:\java\database\pg\postgresql-42.6.0.jar Path = D:\java\jdk1.8.0_32\bin; JAVA_HOME = D:\java\jdk1.8.0_32\; 3、PowerDesigner Tools --> General Options --> Variables: JAR D:\java\jdk1.8.0_32\bin\jar.exe JAVA D:\java\jdk1.8.0_32\bin\java.exe JAVAC D:\java\jdk1.8.0_32\bin\javac.exe JAVADOC D:\java\jdk1.8.0_32\bin\javadoc.exe
驱动下载: devart PostgreSQL ODBC

这个会更好用,也不用设置JDK和环境变量,但是试用期只有一个月。如果事情比较急,可以先用这个,先处理同步。后面有空,在弄上面的。


点击连接就OK了
没去掉会报错: Generation aborted due to errors detected during the verification of the model.

使用Powdersigner同步PostgreSql就省去了复制表结构,因为版本问题,语法不兼容的问题。 对于PostgreSql不熟悉的,还是很好用的。
有个隐藏问题,mysql转换为pg后,模型里面的datetime类型变成date了,导入数据库后,需要手动修改下《统一修改date字段类型为timestamp》
还有如果是唯一性索引,转换后变成索引了,需要再次勾上唯一性索引!!!