【发布时间】:2015-10-07 12:04:26
【问题描述】:
我正在使用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 运行的查询块,但我无法根据现有文档弄清楚它是如何编写的。
如何编写一个 flyway 迁移文件,其中只为特定的存储引擎运行一部分?
【问题讨论】: