达梦数据库(DM)在 Spring Boot 中使用 Flyway

db-migration:Flyway、Liquibase 扩展支持达梦(DM)、南大通用(GBase 8s)、OpenGauss 等国产数据库。部分数据库直接支持 Flowable 工作流。

开源代码仓库 Github:https://github.com/mengweijin/db-migration

开源代码仓库 Gitee:https://gitee.com/mengweijin/db-migration

已支持

  • 达梦(DM 8):支持 Flyway 和 Liquibase,支持 flowable 工作流。
  • 南大通用(GBase 8s):支持 Flyway 和 Liquibase。
  • OpenGauss:支持 Flyway,Liquibase 可直接使用 postgres 驱动得到支持。
  • 人大金仓(Kingbase):可直接使用 postgres 驱动得到支持,无需依赖 db-migration 项目。
版本说明
  • ❌❌:不支持;
  • 🈯✅:flyway 或 liquibase 需要指定特定版本才支持;
  • ❄️✅:flyway 或 liquibase 不需要指定版本就支持(不指定版本,则默认使用的 spring boot 默认版本);
db-migration 版本spring boot 版本flyway 版本liquibase 版本
2.0.82.0.x.RELEASE7.15.0 ❌❌4.27.0 ❌❌
2.0.82.1.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.2.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.3.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.4.x7.15.0 🈯✅4.27.0 🈯✅
2.0.82.5.x7.15.0 🈯✅4.27.0 🈯✅
2.0.82.6.x8.0.4 ❄️✅4.27.0 🈯✅
2.0.82.7.x8.5.11 ❄️✅4.27.0 🈯✅
2.0.83.0.x9.5.1 ❄️✅4.27.0 🈯✅
2.0.83.1.x9.16.3 ❄️✅4.27.0 🈯✅
2.0.83.2.x9.22.3 ❄️✅4.27.0 🈯✅
2.0.83.3.x10.10.0 ❄️✅4.27.0 ❄️✅
2.0.83.4.x10.10.0 🈯✅4.27.0 🈯✅

参考文档

Flyway 对 PL/SQL 的支持

Oracle 的存储过程、触发器、函数等 PL/SQL 代码块需以 / 符号结尾,告知 SQL 引擎执行该代码块。

因此,在 Flyway 中执行 Oracle 存储过程脚本时,必须在 PL/SQL 块的末尾添加 / 符号,以明确表示代码块的结束。 这是 Oracle 数据库对 PL/SQL 语法解析的要求,Flyway 在执行脚本时同样需要遵循这一规则。

Flyway 默认使用普通 SQL 解析器执行脚本,而 Oracle 的 PL/SQL 块需要明确的分隔符。添加 / 符号能帮助 Flyway 识别代码块边界。

例如在创建存储过程或触发器时:

CREATE OR REPLACE PROCEDURE test_proc AS
BEGIN
    -- 存储过程逻辑。此处略。
END;
/
   
CREATE TRIGGER test_trig AFTER INSERT ON test_user
BEGIN
    UPDATE test_user SET name = CONCAT(name, 'triggered');
END;
/

与普通 SQL 脚本的区别:

普通的 DDL(如建表)或 DML(如插入数据)脚本无需 / 符号,因为它们不是多行代码块。 例如:

CREATE TABLE users (id NUMBER PRIMARY KEY);
INSERT INTO users VALUES (1);

但涉及 PL/SQL 结构的脚本(如存储过程、函数、包)必须添加 /。

其他文档

完整的基础使用示例参考代码仓库中,各自的 demo 工程。

### 回答1: Docker和Nacos是两个非常流行的开源项目,能够方便地实现应用程序的容器化和服务的注册与发现。然而,在应用中使用数据库是非常普遍的,而使用达梦数据库则是一种可能的选择。在这种情况下,如何在Docker和Nacos中适配达梦数据库呢? 首先,我们需要考虑各个组件之间的兼容性。Docker和Nacos本身都是与多种数据库兼容的,但是达梦数据库是否被兼容还需要进行测试。如果达梦数据库本身已经支持Docker容器,那么整个适配过程就会相对简单。 其次,我们需要将达梦数据库的连接信息配置到Nacos中,这样就可以在应用程序中使用Nacos进行服务的注册与发现,并且使用达梦数据库进行数据存储。Nacos提供了一些配置管理的功能,可以方便地将数据库连接信息作为配置信息被注册到Nacos中。 最后,我们需要在Docker容器中安装达梦数据库,以便应用程序能够访问到数据库。这需要我们对Docker容器的部署和配置有一定的了解。 综上所述,适配达梦数据库需要我们对Docker、Nacos和达梦数据库都有深入的了解,需要进行多方面的测试和调试。如果我们成功地实现了这个适配,那么就能够为应用程序提供更加稳定和可靠的服务,并且实现更好的数据存储和管理。 ### 回答2: Docker与Nacos适配达梦的过程需要注意以下几点: 首先,需要安装Docker和Nacos。Docker是一个容器化技术,使得应用程序能够在不同的平台上运行,Nacos是服务发现和配置管理平台,它可以协助实现多个服务之间的通讯。而达梦则是一种高效的数据库管理系统,是深圳达梦信息技术有限公司自主研发的数据管理系统。 其次,需要进行适配。适配是指将Docker和Nacos与达梦进行连接。这样,Docker容器中的应用程序就可以通过Nacos发现其他服务,并连接到达梦数据库。 最后,需要进行测试。测试是为了确保适配成功。测试需要验证数据库的读写操作是否正常,并测试所有服务之间的通讯。如果测试成功,则说明Docker和Nacos已经适配达梦。 总之,Docker和Nacos适配达梦是一项非常重要的技术,它可以优化服务器资源的使用,并实现多个应用程序之间的通讯和数据共享。同时,这项技术还可以提高系统的可靠性、可扩展性和安全性,适配达梦将大大提高企业的效率和竞争力。 ### 回答3: Docker是一种在容器上运行应用程序的平台,而Nacos是一个分布式系统服务治理平台,两者都是当前软件开发中非常流行的工具。达梦是一种数据库管理系统,为了使Docker和Nacos能够与达梦数据库适配,需要进行适当配置和调整。 在开始配合前,首先要确保Docker和Nacos服务均已安装并运行。然后,在Nacos配置文件中,需要添加相应的配置项,如JDBC driver class、JDBC URL、username、password等,以便能够连接到达梦数据库。在Docker容器中,还需安装达梦数据库和JDBC驱动程序,以便能够正确连接和操作达梦数据库。 由于Nacos是一个服务治理平台,因此在适配达梦数据库时,还需将数据库服务注册到Nacos上,并配置相应的元数据信息,并在客户端中使用Nacos的服务发现功能来获取达梦数据库的相关信息。 总的来说,Docker和Nacos的适配达梦需要进行多项配置和调整,包括在Nacos的配置文件中添加达梦数据库的相关信息,安装达梦数据库和JDBC驱动程序,将数据库服务注册到Nacos上,以及在客户端中使用Nacos的服务发现功能来获取达梦数据库的信息。适配达梦的过程可能会有些复杂,但是这些工具的使用和适配能够大幅提高开发人员的工作效率和开发质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值