要用Powdersigner同步表结构到PostgreSql数据库,
Powdersigner 版本是 16.5,当前模型是mysql的
1,修改当前模型内容为postgresql的
Database --> Change Current DBMS
选择PostgreSQL 最大版本的(因为Powdersigner内置版本一般比较小,因此选择最大的)
2,连接Postgresql数据库
1,下载数据源ODBC驱动
驱动下载
最好32位和64位的都安装下
2,设置数据源
1,打开 管理工具
打开控制面板 --> 管理工具 或者直接搜索 管理工具
2,新增数据源
双击进行去,点击添加:
创建数据源
填写连接信息:
点击test连接成功就没问题。
可以32位的也一起添加下。
3,创建数据源
0,下载jdbc驱动:
Download | pgJDBC
后面设置连接要用到
1,创建新的数据库
2,配置连接
继续点击配置:
点击新增:
填写连接信息
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】
3,报错处理
点击连接,如果报错:
1,查看jdk设置:
点击 Tools --> General Options --> Variables:
如下图所示,确保jdk的路径是对的
找到jdk对应bin目录,然后点击对应类型的xxx.exe
2,jdk得是32位的
网上的解决思路是按照JDK32位,然后进行相关项配置
如下为网上百度的解决思路:
1、把64位的jdk换成32位的jdk2、系统变量:CLASSPATH = D:\java\database\pg\postgresql-42.6.0.jarPath = 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.exeJAVA D:\java\jdk1.8.0_32\bin\java.exeJAVAC D:\java\jdk1.8.0_32\bin\javac.exeJAVADOC D:\java\jdk1.8.0_32\bin\javadoc.exe
3,如果还是报错,记得重启!
4,驱动备用处理:(简单)
驱动下载: devart PostgreSQL ODBC
这个会更好用,也不用设置JDK和环境变量,但是试用期只有一个月。如果事情比较急,可以先用这个,先处理同步。后面有空,在弄上面的。
4,点击连接
1,输入数据用户和密码:
2,去掉Check Model
点击连接就OK了
没去掉会报错: Generation aborted due to errors detected during the verification of the model.
总结:
使用Powdersigner同步PostgreSql就省去了复制表结构,因为版本问题,语法不兼容的问题。 对于PostgreSql不熟悉的,还是很好用的。