Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Postgres migrations fail on a fresh database

未关闭
#381 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
helm, kubernetes, postgresql
领域
databases, devops

调研方向

使用官方 Helm 部署,在一个全新的 PostgreSQL 18 数据库上复现完整迁移。检查迁移 20230927145127 和 20260701000000,尤其是报告中的 DROP CONSTRAINT 和 DropIndexes 操作。完成的标准是 SonarQube 插件迁移能够在 PostgreSQL 上完成,而无需排除该插件或依赖 workaround。

由索引模型根据 Issue 内容生成。

描述

What happened

Running a full migration against a brand-new PostgreSQL database, two separate SonarQube plugin migrations fail because they try to DROP a constraint/index that the migration assumes already exists from an earlier step, but doesn't on Postgres:

  1. Migration 20230927145127 ("modify file_metrics_key length")

ERROR: constraint "_tool_sonarqube_file_metrics_pkey" of relation "_tool_sonarqube_file_metrics" does not exist (SQLSTATE 42704) ALTER TABLE _tool_sonarqube_file_metrics DROP CONSTRAINT _tool_sonarqube_file_metrics_pkey

  1. Migration 20260701000000 ("change_issue_code_block_component_type")

ERROR: index "idx__tool_sonarqube_issue_code_blocks_component" does not exist (SQLSTATE 42704) (from DropIndexes("_tool_sonarqube_issue_code_blocks", "idx__tool_sonarqube_issue_code_blocks_component"))

Environment:
  • DevLake version: v1.0.3-beta15
  • Database: PostgreSQL 18
  • Deployment: official Helm chart with external DB_URL
Workaround

We excluded the plugin by mounting an empty directory where the sonarqube plugin would be installed otherwise.

  - name: exclude-sonarqube-plugin
    emptyDir: {}
containers:
  - name: lake
    volumeMounts:
      - name: exclude-sonarqube-plugin
        mountPath: /app/bin/plugins/sonarqube

This is pretty hacky and we are wondering if this could be fixed in the helm-chart. it works fine for using MySQL but we have requirements to use Postgres.

主要语言
Go Template
星标
52
派生
71
平均合并
16 小时 15 分钟
30 天内合并 PR
1

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/devlake-helm-chart 的其他 Issue

查看 apache/devlake-helm-chart 的全部 Issue

相似的 Issue

更多 Databases Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。