通过詹金斯上的 Maven 作业导致的飞路迁移错误

Posted

技术标签:

【中文标题】通过詹金斯上的 Maven 作业导致的飞路迁移错误【英文标题】:Flyway migration error via maven job on jenkins 【发布时间】:2018-06-13 09:32:43 【问题描述】:

我有一个 postgresql 数据库。我用来通过 flyway 进行迁移的用户具有创建权限,但是当我通过 jenkins maven 作业应用迁移时,出现以下错误:

07:24:06 [ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:5.0.2:migrate (default) on project database_repo: org.flywaydb.core.internal.exception.FlywaySqlException:
07:24:06 [ERROR] Error while retrieving the list of applied migrations from Schema History table "public"."SCHEMA_VERSION_1_2_4"
07:24:06 [ERROR] ---------------------------------------------------------------------------------------------------------------
07:24:06 [ERROR] SQL State  : 42501
07:24:06 [ERROR] Error Code : 0
07:24:06 [ERROR] Message    : ERROR: permission denied for relation SCHEMA_VERSION_1_2_4
07:24:06 [ERROR] -> [Help 1]
07:24:06 [ERROR] 
07:24:06 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
07:24:06 [ERROR] Re-run Maven using the -X switch to enable full debug logging.

如果我为用户添加超级管理员权限,那么它可以毫无问题地开始工作,但我宁愿不给该用户超级管理员权限。

谁能告诉我用户需要哪些权限才能工作?

【问题讨论】:

您是否尝试将授予 INSERT 添加到此关系中? 【参考方案1】:

从 flyway 连接到数据库的用户应该是数据库的所有者。

一旦我运行以下命令,用户就可以连接到数据库并创建他需要的表:

ALTER DATABASE name OWNER TO new_owner;

【讨论】:

以上是关于通过詹金斯上的 Maven 作业导致的飞路迁移错误的主要内容,如果未能解决你的问题,请参考以下文章

飞路错误故障

验证失败:检测到的应用迁移未在本地解决 |飞路

通过Jenkins作业后,工作节点上的进程没有被杀死

詹金斯服务器上的maven站点插件问题

詹金斯 Maven 构建 137 错误

如何在詹金斯作业中实时显示在远程服务器上运行的日志