一、安装达梦数据库
1、登录达梦数据库官网,下载对应系统版本的安装包。
2、下载地址为:https://www.dameng.com/list_103.html
3、达梦数据库对大小写敏感,在安装初始化数据库实例时建议忽略大小写;具体安装教程可参考以下博客:
https://blog.csdn.net/weixin_64811434/article/details/135396955
【字符串比较大小写敏感】, 默认值为“勾选”,记得取消
二、将Postgre数据库的数据迁移到达梦数据库
通过达梦数据自带的DTS工具迁移,工具存放在 DM 数据库安装目录下 tool 文件夹下面,启动后配置即可,具体操作可以参考以下资料:
https://www.modb.pro/db/587663
三、在项目中引入相关依赖和驱动
1、在网上发现了一个封装好的基于gorm实现的驱动,很好用,参考资料为:
https://toscode.mulanos.cn/iTiki/gorm-dameng/tree/main
四、修改项目中的部分代码
1、参考上述资料修改数据库的连接方式
2、如果项目中引入了casbin中间件,则需要将以下代码:
psqldb, _ := beego.AppConfig.String("psqldb")
dataSource := fmt.Sprintf("host=%s port=%d user=%s dbname=%s password=%s sslmode=disable TimeZone=Asia/Shanghai",
psqladdr,
psqlport,
psqluser,
psqldb,
psqlpass,
)
a, _ := gormadapter.NewAdapter("postgres", dataSource, true)
e, err := casbin.NewEnforcer("initialize/casbin/model.conf", a)
改为如下:
url := dm.BuildUrl(psqluser, psqlpass, psqladdr, psqlport, nil)
db, err := gorm.Open(dm.Open(url), &gorm.Config{})
if err != nil {
panic(err)
}
a, _ := gormadapter.NewAdapterByDBUseTableName(db, "casbin", "rule")
3、启动项目,登陆访问,如果出现错误,一般是达梦SQL关键字转为大写导致,例如,本项目中改了
原语句:
sql := `select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, COALESCE(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_at
from sys_menu m where m.menu_type in ('M', 'C') and m.status = '0'
order by m.parent_id, m.order_num`
修改后的语句为:
sql := `select distinct m.menu_id, m.parent_id, m.menu_name, m.path AS "path", m.component, m.query AS "query", m.visible AS "visible",
m.status, COALESCE(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_at
from sys_menu m where m.menu_type in ('M', 'C') and m.status = '0'
order by m.parent_id, m.order_num`
以上就是我迁移到达梦数据库的相关实践和注意事项,欢迎大家指正。