[BUG] v4.2.9 PostgreSQL 启动迁移失败:DROP INDEX CURRENT_SCHEMA() 语法错误
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
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 配置暂未提供。
复现步骤
- 使用 v4.2.8 和 PostgreSQL 创建并运行 OpenList,使 `webdav_properties` 表及旧复合索引 `idx_webdav_property(path, namespace, name)` 存在。
- 保留原数据库,将 OpenList 升级到 v4.2.9。
- 启动 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
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenListTeam/OpenList
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
OpenListTeam/OpenList#3201 ·
Los mantenedores suelen responder en 2 días
-
[BUG] PikPak 上传 no such host:OSS endpoint 落在 .net 侧(无任何 DNS 记录),附取证与已验证修法Posiblemente ocupada @adsf0427 la tomó hace 13 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
OpenListTeam/OpenList#2986 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
OpenListTeam/OpenList#2872 · 2 comentarios · 2 reacciones ·
Los mantenedores suelen responder en 2 días
-
[BUG] 挂载蓝奏云 .ipa文件无法下载且无法安装Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 40/100
OpenListTeam/OpenList#3265 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 1-2 días Aptitud para principiantes 55/100
OpenListTeam/OpenList#3256 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de OpenListTeam/OpenList
Issues similares
-
[flaky test] TestValidatorCommitterDropsEmptyStatusBatch: submits to the mock VC before its stream is registeredPosiblemente ocupada @liran-funaro la tomó hoy. Abiertocoordinator flaky-test race-condition testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
hyperledger/fabric-x-committer#876 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
garethgeorge/backrest#1426 ·
Los mantenedores suelen responder en 1 día
-
enhancement nav-pilot
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
valkey-io/valkey-operator#549 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
kind/features
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
TencentBlueKing/bk-nodemgr#3804 ·
Los mantenedores suelen responder en 1 día