禅道迁移,linux一键安装版

问题描述:公司需要迁移禅道到另外一台服务器,没迁移过,去官网看了之后成功迁移,其中遇到了很多坑,希望对你们有所帮助。

禅道版本

迁移的版本一致,我的版本是18.3,18.3下载页面
在这里插入图片描述

其他版本下载

先进入检索页面,点击进入
在这里插入图片描述
搜索版本,如我的是开源18.3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在新服务器中安装禅道

我下的是linux一键安装包,将压缩包
在这里插入图片描述
解压

tar -xzvf  ZenTaoPMS.18.3.zbox_64.tar.gz

在这里插入图片描述

备份旧服务器文件

先停止禅道服务

/opt/zbox/zbox stop

主要备份数据库和附件

数据库备份

将/opt/zbox/data/mysql/下的zentao文件夹下载下来(可以打为压缩包下载)
在这里插入图片描述

附件下载

将/opt/zbox/app/zentao/www/data/upload下的1文件夹下载下来(可以打为压缩包下载)
在这里插入图片描述

还原新服务器

先停止新服务器禅道

/opt/zbox/zbox stop

1、先删除新服务器上的/opt/zbox/data/mysql/zentao文件夹之后上传从旧服务器下载的zentao文件夹到/opt/zbox/data/mysql/目录下
在这里插入图片描述
2、删除新服务器/opt/zbox/app/zentao/www/data/upload下的1文件夹(如果有),将下载的1文件夹上传到/opt/zbox/app/zentao/www/data/upload目录

注意:上传的两个文件夹注意权限,需要与服务器文件夹权限一致

3、重启服务器

禅道中内置了apache web服务器和mysql,这两个的端口可以自己设置

设置web端口为40023 mysql为3307
/opt/zbox/zbox -ap 40023 -mp 3307
启动
/opt/zbox/zbox start

到这里其实就可以根据ip+配置web端口访问了,如我这里设置的端口为40023

问题

我在迁移过程中遇到了一个问题,我根据上述方法还原之后能成功进入禅道,数据也正确,但是有个“执行”页面出不来,我以为是我操作的问题,试了几次都这样,如下图。
在这里插入图片描述
我没搜到有相同情况的,最后原因是因为数据库有个表错误了,但是不知道原因,如果你们有任何问题可以官网问问工作人员,当然也可以自己排查一下,可以开启debug模式。

如何开启调试

zentao(pro/biz/pms)/config/my.php(db.php) 中debug的值改成true
版本不一致位置不一致,我的linux一键安装版在/opt/zbox/app/zentao/config下的my.php

sudo vim /opt/zbox/app/zentao/config/my.php

在这里插入图片描述
改为true之后停止再启动禅道,有时候就能看到报错了。

/opt/zbox/zbox stop
/opt/zbox/zbox start

解决

我在工作人员的帮助下开启了调试模式,重启之后再点击“执行”页面看到了错误,报错如下。

17:39:23 ERROR: SQLSTATE[HY000]: General error: 1877 Table zentao/zt_taskteam is corrupted. Please drop the table and recreate. <p>The sql is: SELECT DISTINCT t1.*, t2.id AS storyID, t2.title AS storyTitle, t2.product, t2.branch, t2.version AS latestStoryVersion, t2.status AS storyStatus, t3.realname AS assignedToRealName, IF(t1.`pri` = 0, 256, t1.`pri`) as priOrder FROM `zt_task` AS t1 LEFT JOIN `zt_story` AS t2 ON t1.story = t2.id LEFT JOIN `zt_user` AS t3 ON t1.assignedTo = t3.account LEFT JOIN `zt_taskteam` AS t4 ON t4.task = t1.id LEFT JOIN `zt_module` AS t5 ON t1.module = t5.id wHeRe t1.execution = '14' AND t1.deleted = '0' oRdEr bY `status` asc,`id` desc</p> in lib/base/dao/dao.class.php on line 1412, last called by lib/base/dao/dao.class.php on line 700 through function sqlError.
in /opt/zbox/app/zentao/framework/base/router.class.php on line 2797 when visiting execution-task

得知是表错误,就只能先看看就服务器该表是否有数据,表结构以及建表语句。
这儿说一下如何登录禅道的mysql数据库
切换到/opt/zbox/run/mysql文件夹下并登录mysql,账号root密码123456,使用zentao数据库

cd /opt/zbox/run/mysql
./mysql -u root -p

use zentao

在这里插入图片描述
查询报错的表还是报错说明表有问题
在这里插入图片描述
同样方式查看原服务器的该表
在这里插入图片描述
没报错并且没数据,那就想当我把新服务器上的zt_taskteam并重新添加就行了。
在旧服务器上查出建表语句并删除新服务器上该表重建就行
在这里插入图片描述
新加之后成功显示
在这里插入图片描述
群里工作人员说还可以试试自修复
在这里插入图片描述

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值