目录
一、数据库安装
二、数据库可视化工具
三、数据迁移
四、工程适配
新增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;
五、注意事项
- 有很多达梦的关键字可能不能用,即关键词范围比mysql的大且严,需要花时间去验证
- 外键、索引、函数、存储过程、触发器等都需要特别注意
- int 类型在达梦不能设置精度
- 没有uuid等方法
- 使用自增主键的话,需要开启一个开关