代码之家  ›  专栏  ›  技术社区  ›  Mircea Stanciu

FlywayDB未创建扩展

  •  0
  • Mircea Stanciu  · 技术社区  · 7 年前

    我有一个由FlywayDB收集的启动脚本:

    CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
    -- clean up
    DROP table IF EXISTS tenants;
    
    -- create table
    CREATE TABLE tenants (
        id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), name VARCHAR(64) NOT NULL
    );
    

    还有我的spring boot配置:

    #FLYWAY
    spring.flyway.url=jdbc:postgresql://localhost:5432/tenant?currentSchema=public
    spring.flyway.user=postgres
    spring.flyway.password=secret
    spring.flyway.baseline-on-migrate=true
    

    我所有的脚本都运行良好,除了“创建扩展”位。 我可以使用相同的凭据登录数据库,并成功手动运行它。但是通过FlyWay:不可能。想知道为什么

    0 回复  |  直到 7 年前
        1
  •  0
  •   Axel Fontaine    7 年前

    这应该可以很好地工作,并且被广泛使用。确保您的用户具有执行此操作所需的权限。

        2
  •  0
  •   Dmitry Krivolap    7 年前

    加载扩展需要的权限与 需要创建其组件对象。对于大多数扩展来说 意味着需要超级用户或数据库所有者权限。用户 运行创建扩展成为扩展的所有者 以及创建的任何对象的所有者 根据分机的脚本。

    阅读文档: CREATE EXTENSION