非空数据库使用flyway

本文详细介绍如何通过SQL语句创建Flyway Schema History表,该表用于记录数据库迁移历史,包括版本、描述、类型等关键信息。
-- 执行以下sql,创建 flyway_schema_history 表即可
-- dbname 为要使用flyway的非空数据库
create table if not exists dbname.flyway_schema_history
(
	installed_rank int not null
		primary key,
	version varchar(50) null,
	description varchar(200) not null,
	type varchar(20) not null,
	script varchar(1000) not null,
	checksum int null,
	installed_by varchar(100) not null,
	installed_on timestamp default CURRENT_TIMESTAMP not null,
	execution_time int not null,
	success tinyint(1) not null
);

create index flyway_schema_history_s_idx
	on dbname.flyway_schema_history (success);

 

### 使用 Flyway 进行数据库初始化 为了通过 Spring Boot 启动时执行 Flyway 数据库迁移,配置应用程序属性文件 `application.properties` 或者 `application.yml` 是必要的。对于基于 Maven 的项目,在默认情况下,Spring Boot 自动配置会查找类路径下的依赖并自动应用 Flyway 配置来启动迁移过程[^1]。 当遇到模式而没有元数据表的情况时,将会抛出异常提示使用 `baseline()` 方法或设置参数 `spring.flyway.baseline-on-migrate=true` 来创建该表格[^2]。这意味着如果数据库已经存在一些结构化数据,则需要先建立基线版本以便后续可以安全地应用新的变更脚本而不破坏现有架构。 下面是一个简单的例子展示如何在 Java 中手动调用 Flyway API 初始化数据库: ```java import org.flywaydb.core.Flyway; public class DatabaseInitializer { public static void main(String[] args) { Flyway flyway = Flyway.configure() .dataSource("jdbc:mysql://localhost:3306/mydatabase", "user", "password") .load(); // 如果数据库不是全新的, 则应首先设定基线版本. flyway.baseline(); // 执行所有待处理的迁移操作 flyway.migrate(); } } ``` 此代码片段展示了如何连接到 MySQL 数据库并通过 Flyway 来进行初始化工作。注意这里调用了 `.baseline();` 方法用于处理已有数据的情形;而在实际开发环境中通常只需要确保 `spring.flyway.baseline-on-migrate=true` 已经被正确加入到了项目的配置文件当中即可让 Spring Boot 处理好一切。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值