群晖直接部署kanboard看板系统,并修复子任务问题
背景
最近工作上同时推进的项目比较多,有些跟踪不过来,特别是不同的项目进展的程度也不一样,简单纸笔工具也不直观。
想起之前用过看板系统,比较适合这种情况。
选定
但试用的几款要么部署太复杂、要么功能太简单,还有些在线的数据全在缓存里,数据很容易丢。
最终选定了kanboard。
kanboard仅依赖php,单人使用的话数据库可以用sqlite,只要db目录有写入权限就行了。
kanboard banner
部署
为了避免再折腾域名、端口啥的,直接丢到typecho目录下,通过子目录访问就行了,群晖管理页面再给http组配置上data目录的写入权限。
齐活!
排错1
浏览器访问,duang,一个大错误提示,“只支持php 7.2以上”。
再跑到群晖后台,安装php7.4;webStation中给这个虚拟主机配置使用php 7.4。
再重新访问,OK了
排错2
用了两天,确实不错。
又发现了子任务的故障,新建子任务没问题,但是一点击开始子任务或者完成子任务,就提示数据库错误。
Internal Error: SQL Error: SQLSTATE[HY000]: General error: 1 no such
table: main.task_has_subtasks #4858
搜索了一番,原来是老早就有的问题,貌似子任务表结构设计的有问题,issue里也给了解决方案。
把数据库文件拿到本地,用sqlite管理工具运行修复脚本,把修复好的数据库再放回去覆盖即可。
管理工具:sqlite-tools-win32-x86-3360000.zip
修复脚本保存为fix.sql
ALTER TABLE subtask_time_tracking RENAME TO subtask_time_tracking_old;
CREATE TABLE subtask_time_tracking (
"id" INTEGER,
"user_id" INTEGER NOT NULL,
"subtask_id" INTEGER NOT NULL,
"start" INTEGER DEFAULT 0,
"end" INTEGER DEFAULT 0,
"time_spent" REAL DEFAULT 0,
FOREIGN KEY("user_id") REFERENCES "users"("id") ON DELETE CASCADE,
FOREIGN KEY("subtask_id") REFERENCES "subtasks"("id") ON DELETE CASCADE
);
INSERT INTO subtask_time_tracking SELECT * FROM subtask_time_tracking_old;
运行过程:
sqlite3.exe db.slite
.read fix.sql
排错3
启用插件:
- kanboard自带有插件商店,管理员可以直接安装;
- 官方文档关于插件的设置说明不对,正确的做法是:
- config.php中设置PLUGINS_INSTALLER为true;
- 授予plugins目录访问权
`chmown www-data:www-data plugins`