首页 > 解决方案 > FlywayDB 未创建扩展

问题描述

我有这个由 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
);

和我的春季启动配置:

#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

除了“CREATE EXTENTION”位之外,我所有的脚本都运行良好。我可以使用相同的凭据登录数据库并成功手动运行它。但通过 FlyWay:没办法。想知道为什么

标签: postgresqlspring-bootflyway

解决方案


加载扩展需要创建其组件对象所需的相同权限。对于大多数扩展,这意味着需要超级用户或数据库所有者权限。运行 CREATE EXTENSION 的用户将成为扩展的所有者,以便以后进行权限检查,以及由扩展脚本创建的任何对象的所有者。

阅读文档:创建扩展


推荐阅读