我在Spring启动应用中使用H2
,在生产时使用Oracle DB
。
为了检查迁移文件,我使用FlyWay。
不幸的是,H2与Oracle不兼容(即使设置了Oracle模式)。
所以,我无法验证我的迁移文件。
当我有一个H2查询 - 在我的项目中验证是可以的,但是当我将它上传到生产时 - 它不会在Oracle上工作。
您有什么想法我如何在我的h2-db项目上验证oracle迁移文件?
答案 0 :(得分:2)
Flyway FAQ涵盖了特定于数据库的SQL:
您可以使用flyway.locations属性。它看起来像这样:
TEST (Derby): flyway.locations=sql/common,sql/derby PROD (Oracle): flyway.locations=sql/common,sql/oracle
然后,您可以在特定于数据库的位置使用公共语句(V1__Create_table.sql)和特定于DB的语句(V2__Alter_table.sql)的不同副本。
另一种方法,如果差异真的次要,即只有几个关键字,那么关键字就像Flyway占位符一样:
ALTER TABLE table_name ${alter_column} COLUMN column_name datatype;
TEST (H2): flyway.placeholders.alter_column=ALTER
PROD (Oracle): flyway.placeholders.alter_column=MODIFY