March 24, 2019

Commento Mysql 版

差不多累计肝了两天多,梦寐以求的评论插件终于比较对我胃口了。如你所见,文章下面已经是commento的评论插件。

差不多累计肝了两天多,梦寐以求的评论插件终于比较对我胃口了。如你所见,文章下面已经是commento的评论插件。

commento 被我从postgre版本改为了mysql版本,理论上是postgre有支持来着,不过没有验证,估计大大小小各种bug还是有不少,不过目前已经是可以使用的状态了。

我把它发布在了github上,那个版本只是调整后端部分,前端的样式还是需要自己去撸。话说很想给后台加个批量的评论视图,一个个去管理感觉会很累。

来记录下采的坑:

1.Gorm 的小驼峰下划线模式命名约定

这个可以参考http://gorm.io/docs/conventions.html#Snake-Case-Column-Name 这个。 表名和字段名全都要改,工作量还好 ,执行sql毕竟不是很多,差不多六七十条,慢慢替换就好。

2.邮件TLS支持:

这个默认是没有的,需要自己去撸一个,直接把net/smtp 里面发邮件的那个拷贝出来改改容易的。

3.数据库中文支持:

这个有点奇怪,因为我设置了链接utf8格式,在更新某个表时候报了不支持的错误,于是改为utf8m4。

commento:[email protected]/commento?charset=utf8mb4&parseTime=True&loc=Local--default for mysql example
4.$1占位符号和?

在postgresql的语句里,插入的值都是用$1,$2...来表示。这个Gorm里面不能识别,需要转换为?
不知道改完后postgresql还能不能用...不过主要目的是mysql了。这也是为各种数据库兼容走的第一步。

由于使用了gorm,建表的sql脚本需要转换GORM模型来达到兼容目的。一些只有postgretsql有的语句也需要转换。有的是转换通用写法,有的则是从程序逻辑上去处理。

顺手修了少数不合理的地方,比如发邮件提醒时候,后台会基于链接再去抓一遍页面,解析出标题。这样感觉会很浪费资源,于是改为直接接口提交携带标题。

部分抛出错误地方没有log也添加了,方便追踪问题。部分主键重复之类的错误会影响前端流程就没有抛出来改为只做记录。

断断续续肝这么久,总结也就这么一丢丢了。毕竟是在用爱发电,比上班敲的那些东西不知道高哪里去了。