postgresql - 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:没办法。想知道为什么
解决方案
加载扩展需要创建其组件对象所需的相同权限。对于大多数扩展,这意味着需要超级用户或数据库所有者权限。运行 CREATE EXTENSION 的用户将成为扩展的所有者,以便以后进行权限检查,以及由扩展脚本创建的任何对象的所有者。
阅读文档:创建扩展
推荐阅读
- postgresql - 如何正确参数化我的 postgresql 查询
- angular - 为什么不能选择mat-select的mat-option?
- netlogo - 加快 R 中海龟的年龄和位置检查?
- kubernetes - 为什么 Kubernetes 的 statefulset 不能均匀地运行 3 个 pod?
- c++ - 如何创建一个基于其输入创建不同数量变量的结构
- google-apps-script - 无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止
- sql-server - 如何释放 SQL Server 中用于解析 XML 字段的内存
- reactjs - $r 在 React 开发工具中
- angular - 使用angular提交表单时如何通过HTTP post请求保存令牌本地存储
- api - 如何在 Vuejs 的上下文中使用 API 获取图表数据