firebird数据库(Flyway:一款免费开源的数据库变更管理工具)

firebird数据库(Flyway:一款免费开源的数据库变更管理工具)
Flyway:一款免费开源的数据库变更管理工具

Flyway 是一个开源的数据库迁移(Database Migration)工具,致力于简化数据库的版本控制和变更管理。

项目源代码托管在 GitHub,目前获得了 9.1K Stars:

https://github.com/flyway/flyway

工作原理

我们从最简单的场景开始,第一次针对一个数据库运行 Flyway 时:

Flyway 无法找到记录数据库变更的模式历史表(flyway_schema_history),因此会进行初始化创建。

然后 Flyway 会扫描指定的代码目录或者应用程序的 classpath,按照文件命名版本号运行其中的 SQL、Java 或者其他语言脚本,进行数据库结构变更。

与此同时会在模式历史表中记录已经运行过的脚本:

有了这些记录之后,当应用程序按照命名规则增加新的变更脚本时,Flyway 可以知道哪些文件还没有被运行,哪些文件不再需要运行:

执行新的数据库变更之后,在模式历史表中的记录也会同步更新:

firebird数据库(Flyway:一款免费开源的数据库变更管理工具)

不断重复以上过程就可以实现基于版本的数据库变更管理了。

功能特性

Flyway 通过一系列规范的版本化脚本,使得数据库结构的变更能够实现可重复、可追溯和自动化部署,完美地融入了现代应用的持续集成和持续交付(CI/CD)流程。

  • 跨平台:基于 Java 开发,支持 Windows、macOS、Linux 以及 Docker 部署。
  • 多数据库: 支持各种数据库,包括 MySQL、PostgreSQL、Azure Synapse、Clickhouse、CockroachDB、Databricks、DB2、Derby、Firebird、BigQuery、Google Cloud Spanner、H2、HSQLDB、Informix、MariaDB、MongoDB、MySQL、Oracle、Redshift、SAP HANA、SingleStoreDB、Snowflake、SQLite、SQL Server、Sybase ASE、TiDB、TimescaleDB、YugabyteDB 等。
  • 简单易用:只需编写标准的 SQL 脚本,按照约定的规则命名,Flyway 就会自动处理。
  • 版本控制: 数据库脚本和应用程序代码一样,可以纳入版本控制系统(例如 Git),方便协作和追溯每一次变更。
  • 自动化:完美集成 CI/CD 流水线,应用启动时或构建过程中可以自动执行数据库迁移,无需人工干预。
  • 可靠性:迁移操作通常在数据库事务内进行(可以配置),保证迁移的原子性,数据库不会停留在中间状态。
  • 多种使用方式:提供了命令行工具 (Flyway CLI)、API、Maven/Gradle 插件、Spring Boot 集成等方式,满足不同场景的需求。

产品版本

Flyway 提供了免费的社区版和支持更多功能的企业版,两者的区别如下:

下载安装

Flyway 社区版下载网址如下:

https://github.com/flyway/flyway/releases

下载完成后解压即可,运行 flyway.cmd 或者 flyway 查看命令帮助:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读

最新文章

热门文章

本栏目文章