目录

一、数据库安装

二、数据库可视化工具

三、数据迁移

四、工程适配

新增maven依赖

配置文件修改

基于flyway的数据库版本管理

 五、注意事项


一、数据库安装

官方文档:安装前准备 | 达梦技术文档

这里有一个点需要注意,如果你之前的数据库或者说业务系统无需大小写敏感,那么在安装达梦时请勾选该选项,可以避免许多问题。

二、数据库可视化工具

如果你是windows系统,第一步在安装数据库时即可一并安装达梦自带的所有工具,包括迁移工具和数据库可视化工具。达梦目前不支持 mac 系统,但是可视化工具这块可以使用 Datagrip 或 DBeaver 通过增加达梦的数据库驱动以便支持。

三、数据迁移

使用达梦的迁移工具操作即可:从 MySQL 迁移到 DM | 达梦技术文档

本人是从 mysql -> dm,

  • 迁移时若执行失败,可重新执行失败的sql,一般多是由于索引、外键之类引起的;
  • 迁移完成后,需要检查原先有外键的表,是否该外键还存在
  • 如果是大小写敏感,工具生成执行失败的sql可能会有错误,需要把字段改成大写或者加上引号
  • 数据库的函数、触发器、存储过程在进行迁移时同样可能会有问题,需重新检查

四、工程适配

新增maven依赖

工程中增加达梦数据库驱动,如果有使用jpa,需要增加jpa的方言依赖:

        <dependency>
            <groupId>com.dameng</groupId>
            <artifactId>DmJdbcDriver18</artifactId>
            <version>8.1.2.141</version>
        </dependency>
 
// 如果有 jpa。可以引入这个:
        <dependency>
            <groupId>com.dameng</groupId>
            <artifactId>DmDialect-for-hibernate5.0</artifactId>
            <version>8.1.2.141</version>
        </dependency>

注意这里的版本号,需要和你安装的数据库所使用的驱动保持一致,这里仅代表本文发表时达梦最新的驱动(之前使用了一些老的版本号,出来好多奇奇怪怪的问题困扰了好久)

配置文件修改

新建dm配置文件,主要修改数据源的内容以及jpa方言等等一些特定的修改

spring:
  datasource:
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://192.168.x.xx:5236?schema=ABC&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    username: SYSDBA
    password: SYSDBA

 通过schema参数指定达梦的"模式",使得sql语句中不需要模式名.表名就能使用。

jpa配置如下,最下面两行是新加的配置,为了兼容主键生成策略以及指定达梦数据库方言

spring:
  jpa:
    hibernate:
      ddl-auto: none
    show-sql: true
    properties:
      hibernate:
        id:
          new_generator_mappings: false
        dialect: org.hibernate.dialect.DmDialect

基于flyway的数据库版本管理

flyway默认是不支持达梦的,需要扩展,可参考如下源码:flyway-extend: 扩展添加对 Flyway 官方默认不支持的一些数据库的支持。当前支持DM达梦数据库。 - Gitee.com

因为达梦和mysql的ddl不一样,因此需要分别管理:

flyway的location也记得改一下:

 当初始化脚本里涉及数据插入,且这部分数据插入带有自增字段值,那么需要开启一个开关

SET IDENTITY_INSERT 表名 ON;

insert 语句...

SET IDENTITY_INSERT 表名 OFF;

 五、注意事项

  1. 有很多达梦的关键字可能不能用,即关键词范围比mysql的大且严,需要花时间去验证
  2. 外键、索引、函数、存储过程、触发器等都需要特别注意
  3. int 类型在达梦不能设置精度
  4. 没有uuid等方法
  5. 使用自增主键的话,需要开启一个开关

更多推荐