David
发布于 2016-04-09 / 27 阅读 / 0 评论 / 0 点赞

GitLab 7.10升级8.6.1的一些问题

看到这货几乎每天一个小版本,妥妥的版本帝,要是修复的那些问题自己不会触发的话,升不升也没什么区别 不过我已经落后一个大版本,而且新版的界面更好看,而且性能更好,而且升级上去有种说不出的感觉,升级强迫症.. 正所谓小升怡情,大升伤身,事前还是找多点文档看看,做好准备 虽然大多数博客升级都是一路顺,不会有错误,不会有莫名其妙的问题,简直就是新闻里的和谐社会 但是,到自己操作的时候,呵呵 PS:gitlab是运行在虚拟机中 之前偷懒用的是一键安装包,所以继续用一键安装 这里是下载地址 官网上也有自动升级脚本,但是下载速度完全不能体现联通百兆的威力,索性自己用115离线后再拖回来(即使翻墙下载也只有6M/s) 下载完后,开始备份原有的数据,以防万一(如果是虚拟机里面跑的话,也顺便建立个快照吧) 来吧,执行命令
sudo dpkg -i gitlab-ce_8.6.1-ce.0_amd64.deb
begin 嗯,还好,程序会自动备份一次 过了一会儿后,突然间就冒出这一堆东东 error 大大的error,瞬间闪瞎 [su_note]psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?[/su_note] 搜索了下,找到个不靠谱的方法,说在某个地方创建个文件夹,再次执行安装,会跳过此操作 但这是要连接数据库的关键喔,能逃得了安装,能逃得掉平常使用? 重新尝试升级的时候,这一步是必须做的,7.10版本可以,估计是8.6要求的权限不同
sudo touch /etc/gitlab/skip-auto-migrations
创建后,继续安装,一切顺利 提示需要运行reconfigure,既然你诚心诚意的提示,那我就大发慈悲运行 运行后,没什么异常,我们还需要对数据关系处理下,执行命令
sudo gitlab-rake db:migrate:status
然后会见到很多down和up,down状态的那些需要处理,执行命令
sudo gitlab-rake db:migrate
人生不可能一帆风顺,升级也一样,我选择狗带 错误提示和截图 [su_note note_color="#ec3551" text_color="#ffffff"]-- execute("SELECT true AS enabled FROM pg_available_extensions WHERE name = 'pg_trgm' AND installed_version IS NOT NULL;") ; rake aborted! StandardError: An error has occurred, all later migrations canceled:[/su_note] 这是什么意思?要我去自己建表?你不会自己建啊?他好像没权限建 好吧,怪错你,执行命令连接数据库
sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
跟进入mysql一样耶~~萌新,进入后再执行
CREATE EXTENSION pg_trgm;
那我们来思考下,这个extension是什么东东,create table比较常见,我也是第一次见 谷歌一下,看不懂英文,大概意思是创建扩展 退出方式出乎意料,用\q才可以,我的智商已经被碾碎 接着执行之前的升级命令,没有任何错误,全都变成up状态 然后再执行下reconfigure和重启下gitlab,打开网页,看看是否正常运行 ***,网页报502错误,执行命令以查看实时日志(第二次说这个命令,往后就不再说了)
sudo gitlab-ctl tail
其中提示没有权限
2016-04-09_10:00:46.30577 could not connect to server: Permission denied
2016-04-09_10:00:46.30580       Is the server running locally and accepting
2016-04-09_10:00:46.30580       connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
苦苦搜索,连影子什么的完全没摸到,索性建个新系统,全新安装gitlab8.6,看看postgresql的权限 正常的应该是这样子 normal 上面报错的却是这样子 缺少了文件组和其他用户权限,那就改下
sudo chmod 755 postgresql/
刷新下网页,界面显示正常,日志输出正常,提交记录正常 终于升上8.6.1~~ 总结下,升级需要的操作 创建文件skip-auto-migrations 修改 postgresql文件夹权限为755 安装 处理数据库 重启gitlab 搞定