FlywayDB没有创建扩展

问题描述 投票:1回答:2

我有这个由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 EXTENSION”位之外,我的所有脚本都正常工作。我可以使用相同的凭据登录数据库并成功手动运行它。但是通过FlyWay:没办法。想知道为什么

postgresql spring-boot flyway
2个回答
0
投票

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


0
投票

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

阅读文档:CREATE EXTENSION

© www.soinside.com 2019 - 2024. All rights reserved.