Spring启动 - h2和Oracle没有100%的兼容性

时间:2017-09-21 16:14:50

标签: spring oracle spring-boot h2 flyway

我在Spring启动应用中使用H2,在生产时使用Oracle DB。 为了检查迁移文件,我使用FlyWay。 不幸的是,H2与Oracle不兼容(即使设置了Oracle模式)。 所以,我无法验证我的迁移文件。 当我有一个H2查询 - 在我的项目中验证是可以的,但是当我将它上传到生产时 - 它不会在Oracle上工作。 您有什么想法我如何在我的h2-db项目上验证oracle迁移文件?

1 个答案:

答案 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
相关问题