• Powdersigner + PostgreSql 同步表结构到pg数据库


    要用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位的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

    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不熟悉的,还是很好用的。

    隐藏问题:

            有个隐藏问题,mysql转换为pg后,模型里面的datetime类型变成date了,导入数据库后,需要手动修改下《统一修改date字段类型为timestamp

            还有如果是唯一性索引,转换后变成索引了,需要再次勾上唯一性索引!!!

  • 相关阅读:
    不可变集合、Lambda表达式、Stream流
    list链表
    总结C++单例模式
    基于OpenCV的程序脱离动态链接库运行方法
    商务呈现之沟通管理-上
    【springboot进阶】摆脱 if/else 的高级应用 - 策略模式
    SQL 插入数据
    计算地球上两点间的方位角和俯仰角【输入经纬度】
    Spring MVC程序开发基础
    【web后端】C#类与继承、随机数写法、虚函数、例题
  • 原文地址:https://blog.csdn.net/qq_35461948/article/details/132834709