我正在尝试在不包含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表
答案 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用户。