GitLab从14.0.5升级至15.0.4时遭遇数据库迁移错误求助
GitLab 14.0.5 升级至15.0.4 迁移错误解决
问题场景
从GitLab 14.0.5升级到15.0.4时,执行gitlab-rake reconfigure触发数据库迁移报错;单独执行gitlab-rake db:migrate时,出现以下PostgreSQL错误:
pg::duplicateschema: error: schema "gitlab_partitions_dynamic" already exists
环境信息:Ubuntu 20.04 x86_64、Ruby 2.7.5p203
解决方案
该错误源于GitLab 15.x版本的数据库迁移会自动创建gitlab_partitions_dynamic分区schema,但此前迁移中断导致该schema已存在,后续迁移无法重复创建。按以下步骤处理:
进入GitLab PostgreSQL控制台
执行命令切换到GitLab管理的PostgreSQL实例:gitlab-psql -d gitlabhq_production验证schema存在性
在PostgreSQL控制台中执行查询,确认schema确实存在:SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'gitlab_partitions_dynamic';返回结果包含该schema则继续下一步。
删除重复的schema
若该schema为空(无关联表),直接执行删除命令:DROP SCHEMA gitlab_partitions_dynamic;若schema内存在表,建议先备份该schema(
pg_dump -n gitlab_partitions_dynamic gitlabhq_production > schema_backup.sql),确认表无业务价值后再删除。重新执行数据库迁移
退出PostgreSQL控制台(输入\q回车),执行迁移命令:gitlab-rake db:migrate迁移完成后,重新运行配置命令:
gitlab-rake reconfigure
额外排查建议
- 若迁移仍失败,查看GitLab迁移日志获取详细错误:
cat /var/log/gitlab/gitlab-rails/migration.log - 升级前务必完成GitLab数据备份:
gitlab-backup create
内容的提问来源于stack exchange,提问作者RAVI KUMAR
相关产品推荐
相关产品推荐

