【问题标题】:How do I prevent flyway from creating the schema during init如何防止 flyway 在初始化期间创建模式
【发布时间】:2014-03-02 18:43:31
【问题描述】:

我正在尝试在不包含 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 表

【问题讨论】:

    标签: flyway


    【解决方案1】:

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

    我怀疑您在 flyway.schemas 中输入的值是错误的。把它留空就可以了。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        我发现我用小写名称

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

        我给了Flyway

        flyway.user=myuser
        

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

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

        【讨论】:

          猜你喜欢
          • 2021-11-26
          • 2018-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-18
          • 2015-08-19
          • 2012-03-20
          相关资源
          最近更新 更多