支持多个存储引擎的 Flyway 迁移
Flyway migrations supporting multiple storage engines
我正在使用 FlywayDB 为通用 SQL 数据库编写一组迁移文件。该项目需要支持 Oracle、MySQL 和 PostgreSQL,这意味着无论使用哪种受支持的数据库类型,我的迁移文件都需要足够灵活以 运行。
在某些情况下这是一个问题。例如,如果我想要一个迁移文件重命名一个列,MySQL 和 Oracle
之间的语法是不同的
MYSQL
ALTER TABLE "table_name" CHANGE "old_column_name" "new_column_name" DATATYPE;
甲骨文
ALTER TABLE "table_name" RENAME COLUMN "old_column_name" TO "new_column_name";
Flyway 似乎能够为 Database-specific SQL syntax extensions 定义仅 运行 的查询块,但我无法根据现有文档弄清楚它是如何编写的.
如何为特定存储引擎编写只有一部分 运行 的迁移文件?
您有两个选择:使用占位符表示细微差别或 solution described in the FAQ
我正在使用 FlywayDB 为通用 SQL 数据库编写一组迁移文件。该项目需要支持 Oracle、MySQL 和 PostgreSQL,这意味着无论使用哪种受支持的数据库类型,我的迁移文件都需要足够灵活以 运行。
在某些情况下这是一个问题。例如,如果我想要一个迁移文件重命名一个列,MySQL 和 Oracle
之间的语法是不同的MYSQL
ALTER TABLE "table_name" CHANGE "old_column_name" "new_column_name" DATATYPE;
甲骨文
ALTER TABLE "table_name" RENAME COLUMN "old_column_name" TO "new_column_name";
Flyway 似乎能够为 Database-specific SQL syntax extensions 定义仅 运行 的查询块,但我无法根据现有文档弄清楚它是如何编写的.
如何为特定存储引擎编写只有一部分 运行 的迁移文件?
您有两个选择:使用占位符表示细微差别或 solution described in the FAQ