Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[BUG] v4.2.9 PostgreSQL 启动迁移失败:DROP INDEX CURRENT_SCHEMA() 语法错误

Cerrado Apto para principiantes
#3,267 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Ya se ha fusionado un pull request relacionado.

  • #3269 de @renovate — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go, postgresql

Línea de trabajo

El error se debe a una versión incorrecta de una dependencia: internal/db/webdav_property_migrate.go llama a DropIndex y la versión fijada v1.6.2 de gorm.io/driver/postgres genera SQL no válido: DROP INDEX CURRENT_SCHEMA()."idx_webdav_property". La solución es actualizar el driver a v1.6.3 en go.mod/go.sum (corrección upstream en go-gorm/postgres PR #353) y, a continuación, verificar la migración con una instancia de PostgreSQL que tenga el índice antiguo idx_webdav_property(path, namespace, name). Se considera terminado cuando OpenList v4.2.9 se inicia correctamente con una base de datos actualizada desde v4.2.8.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

请确认以下事项
  • 我已确认阅读并同意 AGPL-3.0 第15条(不提供担保,使用风险由使用者承担)。
  • 我已确认阅读并同意 AGPL-3.0 第16条(按许可条款限制责任)。
  • 我确认问题描述清晰、礼貌,并能帮助开发者定位问题。
  • 我已确认没有找到相同的 OpenList issue;GORM 上游另有同一驱动缺陷 issue #350。
  • 我确认这是 OpenList v4.2.9 数据库迁移路径触发的问题,不是存储驱动问题。
  • 我认为需要 OpenList 升级 PostgreSQL GORM 驱动以修复其依赖集成。
  • 这是刚发布的 v4.2.9 回归,GORM 上游修复版本为 v1.6.3,OpenList v4.2.9 仍依赖 v1.6.2。
OpenList 版本(必填)

v4.2.9(从 v4.2.8 升级)

使用的存储驱动(必填)

N/A。错误发生在数据库启动迁移阶段,存储驱动尚未初始化。

问题描述(必填)

从 v4.2.8 升级到 v4.2.9 后,已有 WebDAV 属性数据的 PostgreSQL 实例在启动时退出,服务无法启动。

源码定位:v4.2.9 的 `internal/db/webdav_property_migrate.go` 检查旧索引 `idx_webdav_property`。检测到旧复合索引 `(path, namespace, name)` 后调用 `m.DropIndex(table, index.Name())`,准备切换至 `key_hash` 唯一索引。v4.2.9 使用 `gorm.io/driver/postgres v1.6.2` 和 `gorm.io/gorm v1.31.2`。该 PostgreSQL 驱动版本为 DROP INDEX 生成了无效语句:

```sql
DROP INDEX CURRENT_SCHEMA()."idx_webdav_property"
```

`CURRENT_SCHEMA()` 被放在 schema 标识符位置,PostgreSQL 无法解析,导致迁移失败。GORM PostgreSQL 驱动中有相同错误的 issue #350,已由 PR #353 修复并发布在 v1.6.3。

建议将 `gorm.io/driver/postgres` 升级到至少 v1.6.3,并更新 `go.mod` / `go.sum`。

日志(必填)

```text
FATA[2026-10-25 18:48:14] failed migrate webdav_properties: ERROR: syntax error at or near "CURRENT_SCHEMA" (SQLSTATE 42601)
```

配置文件内容(必填)

数据库类型为 PostgreSQL。为避免泄漏凭据,此报告不包含 DSN、密码或其他敏感配置。PostgreSQL 服务端的具体版本和 schema 配置暂未提供。

复现步骤
  1. 使用 v4.2.8 和 PostgreSQL 创建并运行 OpenList,使 `webdav_properties` 表及旧复合索引 `idx_webdav_property(path, namespace, name)` 存在。
  2. 保留原数据库,将 OpenList 升级到 v4.2.9。
  3. 启动 OpenList,数据库迁移执行旧索引清理时失败并退出。

全新数据库不会命中已有旧索引的删除路径。报告基于用户提供的启动日志及 v4.2.9/GORM 源码与上游缺陷记录;未在此环境连接 PostgreSQL 实例复现。相关 OpenList 变更为 #3259 / commit `0497ee85`。

AI生成内容
  • 我使用了AI工具生成此内容
  • 我没有使用AI工具生成此内容
AI模型是

OpenAI Codex(用于源码追踪、根因分析和 issue 文案整理)

Lenguaje dominante
Go
Estrellas
25.1k
Forks
2.4k
Merge medio
3 d 18 h
PR fusionados (30 d)
18

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenListTeam/OpenList

Todos los issues de OpenListTeam/OpenList

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.