如何在init期间阻止flyway创建模式

时间:2014-02-06 01:46:28

标签: flyway

我正在尝试在不包含schema_history表的现有Oracle 11g架构上开始使用flyway v2.3

在我的flyway.properties中,我将flyway.user设置为架构所有者,并且我将flyway.schemas属性设置为相同的值

从命令行运行init时,我预计flyway只会创建schema_history表,但它会失败并显示以下消息:

$ ./flyway.cmd init
Flyway (Command-line Tool) v.2.3

Creating schema "myschema" ...
ERROR: Unable to create schema "myschema"
ERROR: Caused by: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

为什么flyway会尝试创建架构?我只希望它在我配置的模式中创建schema_history表

3 个答案:

答案 0 :(得分:2)

命令正确。请注意,flyway.schemas区分大小写,如果留空则会自动填充用户的默认架构。

我怀疑你在flyway.schemas中输入的值是错误的。把它留空,你应该没问题。

答案 1 :(得分:0)

因此,您必须确保要处理属于您登录的用户名的架构。如果你想在不同的模式中工作,你必须在flyway.properties中指定。

答案 2 :(得分:0)

我在Flyway Maven插件3.1中遇到了同样的问题。

我发现我使用小写名称

创建了我的用户
CREATE USER myuser ...

我给了Flyway

flyway.user=myuser

但是连接我的用户名时被转换为大写,因此Flyway报告名称为MYUSER的用户不存在。

解决方案:创建并使用大写名称的Oracle DB用户。