使用 Wekan 看板过程中,经常遇到各种问题,本文会不断更新记录使用过程中遇到的所有问题。
常见问题
1. 无法选择成员
表现:选择一个成员后,很快会自动取消选择。控制台会有错误日志,大致内容是无法添加某个值到非数组中。
一开始以为没法添加用户到 cards 的 members 数组中,后来发现原因如下:
由于看板可以配置关注状态,当配置发邮件时,如果产生和自己有关的消息,就会发邮件,发邮件前,会先把邮件内容记录到用户 users 表的 "profile.emailBuffer"
字段中,经过检查发现数据库中该字段是一个 ""
字符串类型,改为 []
后即可解决。更新 SQL 如下:
2. 无法打开看板
表现:点开某个看板后,只能看到顶部菜单,页面主体部分一直显示加载中。
大概参考了 https://github.com/wekan/wekan/issues/1703 这个问题,和我情况比较接近,而且控制台确实会输出一些和自定义字段相关的错误日志。
原因:可能因为在操作 A 看板的卡片配置自定义字段的时候,数据还没有完全同步的情况下,切换到了 B 看板,此时 A 中的卡片使用了 B 中的自定义字段。然后在打开看板的时候就会因为字段的问题导致无法打开看板。
错误数据:
解决办法就是清空这种错误的自定义字段即可,我现在还没发直接用 mongo 脚本查询出有问题的卡片,目前只能人眼识别,然后通过下面的语句更新数据:
3. 部分卡片看不到
特点就是有些人能看到某个卡片,但是大部分人看不到。
原因:未知原因导致 卡片的 泳道ID 变成了 看板 ID。
这个问题发生的比较早,也因为这个问题从 snap 换成了 docker 方式,并且选择了一个比较早的版本。下面直接贴出解决方案。
解决方法:只能手动找到实际的泳道 ID,然后手动更新有问题的卡片。
如何调试?
在 看板工具 Wekan 安装配置启动和数据备份 这篇博客中,我最终创建了两个 mongo 服务器,主要是为了避免误操作。实际上一个服务器上创建多个数据库也可以,在调试过程中,先备份生产库,然后还原到测试库上,在测试库进行调试!
因为使用的 docker,所以直接启动一个 Wekan 镜像进入 /bin/sh
(不启动默认命令)。
第一个 8888 端口是 wekan 服务的,第二个 9229 是 nodejs 开启调试模式的默认端口。
进入机子后,cd /build
进入 wekan 的程序目录,cat README
查看文档如下:
This is a Meteor application bundle. It has only one external dependency:
Node.js v8.9.3. To run the application:$ (cd programs/server && npm install)
$ export MONGO_URL=‘mongodb://user:password@host:port/databasename’
$ export ROOT_URL=‘http://example.com’
$ export MAIL_URL=‘smtp://user:password@mailhost:port/’
$ node main.jsUse the PORT environment variable to set the port where the
application will listen. The default is 80, but that will require
root on most systems.Find out more about Meteor at meteor.com.
按照文档设置环境变量,例如我这里:
以调试方式启动应用:
之后在 Chrome 浏览器中,配置服务器 IP:PORT 后就可以调试了。