Help us learn about your current experience with the documentation. Take the survey.
从 CE 到 EE 转换故障排除
当将 Linux 包安装从 GitLab Community Edition (CE) 转换到 GitLab Enterprise Edition (EE) 时,您可能会遇到以下问题。
RPM ‘package is already installed’ 错误
如果您使用的是 RPM,可能会遇到类似这样的错误:
package gitlab-7.5.2_omnibus.5.2.1.ci-1.el7.x86_64 (which is newer than gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64) is already installed您可以使用 --oldpackage 选项来覆盖此版本检查:
sudo rpm -Uvh --oldpackage gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64.rpm已安装软件包使软件包被废弃
Community Edition (CE) 和 Enterprise Edition (EE) 软件包被标记为相互废弃,这样两者就不会同时安装。
如果您使用本地 RPM 文件从 CE 切换到 EE,或者从 EE 切换到 CE,请使用 rpm 安装软件包,而不是 yum。如果您尝试使用 yum,可能会遇到如下错误:
Cannot install package gitlab-ee-11.8.3-ee.0.el6.x86_64. It is obsoleted by installed package gitlab-ce-11.8.3-ce.0.el6.x86_64为了避免此问题,可以:
- 使用 使用手动下载的软件包进行升级 部分提供的相同说明。
- 通过在命令选项中添加
--setopt=obsoletes=0来临时禁用 yum 中的此检查。
访问项目仓库设置时出现 500 错误
当 GitLab 从 Community Edition (CE) 转换到 Enterprise Edition (EE),然后再转换到 CE,最后又转换回 EE 时,会出现此错误。
在查看项目的仓库设置时,您可以在日志中看到此错误:
Processing by Projects::Settings::RepositoryController#show as HTML
Parameters: {"namespace_id"=>"<namespace_id>", "project_id"=>"<project_id>"}
Completed 500 Internal Server Error in 62ms (ActiveRecord: 4.7ms | Elasticsearch: 0.0ms | Allocations: 14583)
NoMethodError (undefined method `commit_message_negative_regex' for #<PushRule:0x00007fbddf4229b8>
Did you mean? commit_message_regex_change):此错误是由于在首次迁移到 EE 时,将 EE 功能添加到了 CE 实例中。当实例迁移回 CE 然后又升级到 EE 时,数据库中已经存在 push_rules 表。因此,迁移无法添加 commit_message_regex_change 列。
这导致 EE 表的回迁迁移 无法正常工作。回迁迁移假设在运行 CE 时,数据库中的某些表不存在。
要解决此问题:
-
启动数据库控制台:
sudo gitlab-rails dbconsole --database main -
手动添加缺失的
commit_message_negative_regex列:ALTER TABLE push_rules ADD COLUMN commit_message_negative_regex VARCHAR; # Exit psql \q -
重启 GitLab:
sudo gitlab-ctl restart