Flyway + Oracle问题与基线有关

时间:2018-01-17 20:03:20

标签: flyway

我正在尝试使用Spring Boot应用程序和Oracle。 到目前为止,我已成功地将flyway用于几个数据库(postgreSQL,mysql,SQLServer),但在Oracle上,我一直遇到鸡蛋和鸡蛋问题。

如果我是第一次运行我的应用,则会收到错误:Found non-empty schema "SPRING" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.

我正在将用户spring连接到Oracle上配置的特定命名空间。我希望在同一名称空间上有schema_version

因此,如果我尝试设置flyway.baseline-on-migrate=true,它确实会创建迁移表,但是,它不会创建任何表,因为它表示已经在{{1}标识的模式上安装了版本1 }}

如何摆脱这种鸡蛋问题?似乎只与oracle,所有其他dbs一起发生,它在第一次直接工作。

到目前为止,我正在运行它,应用程序失败,然后我从<< Flyway Baseline >>表中删除条目并再次运行。

想法?

1 个答案:

答案 0 :(得分:0)

您可能需要在Spring Boot中指定架构,例如:

flyway: schemas: SPRING

让我们说,您在Oracle XE中进行了以下设置:

CREATE TABLESPACE SPRING DATAFILE 'spring.dbf' SIZE 40M ONLINE; CREATE USER SPRING IDENTIFIED BY SPRING DEFAULT TABLESPACE SPRING TEMPORARY TABLESPACE TEMP; GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, UNLIMITED TABLESPACE TO SPRING;

您现在应该能够使用以下引导属性填充数据库:

spring: datasource: url: jdbc:oracle:thin:@localhost:1521:xe username: SPRING password: SPRING flyway: schemas: SPRING