也谈自建统计

其实在使用各种第三方的统计之前,一直用的都是jetpack自带的统计系统,虽然简陋但是也基本够用了。主要是也没有什么太多需要分析的数据,后来有一段时间用的cnzz的免费版,但是在某一天之后忽然收费了不能用了。改换到百度,51la,不过这俩统计也是各种被屏蔽。

前几天看到小乔同学那个统计感觉很有意思就自建了一个:

是不是很可爱哒,就喜欢这种可可爱爱的风格。这个用的是Moe-Counter多种风格可选的萌萌计数器.

https://github.com/journey-ad/Moe-Counter

安装神马的也非常简单,使用sqlite数据库,可以直接通过数据库修改基数。

今天想着把百度的统计要给换了,于是尝试用Umami统计:

Umami is a simple, fast, privacy-focused alternative to Google Analytics.

https://github.com/umami-software/umami

不过在安装的时候出现了下面的错误:

Error: P3018

A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 02_report_schema_session_data

Database error code: 1064

Database error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN `event_data_type` TO `data_type`;
ALTER TABLE `event_data` RENAME COLUMN ' at line 2

Please check the query number 1 from the migration file.


✗ Command failed: prisma migrate deploy
Error: P3018

A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 02_report_schema_session_data

Database error code: 1064

Database error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN `event_data_type` TO `data_type`;
ALTER TABLE `event_data` RENAME COLUMN ' at line 2

Please check the query number 1 from the migration file.



error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "check-db" exited with 1.
error Command failed with exit code 1.

这个就很蛋疼了,搜索了一下,发现说是语法问题,参考这个链接:https://roy.wang/umami-build-error-p3009/

修改sql文件:

vim db/mysql/migrations/02_report_schema_session_data/migration.sql 

将下面的代码:

-- AlterTable
ALTER TABLE "event_data" RENAME COLUMN "event_data_type" TO "data_type";
ALTER TABLE "event_data" RENAME COLUMN "event_date_value" TO "date_value";
ALTER TABLE "event_data" RENAME COLUMN "event_id" TO "event_data_id";
ALTER TABLE "event_data" RENAME COLUMN "event_numeric_value" TO "number_value";
ALTER TABLE "event_data" RENAME COLUMN "event_string_value" TO "string_value";

修改为:

-- RenameColumns
ALTER TABLE `event_data` ADD COLUMN data_type INTEGER UNSIGNED AFTER event_data_type;
ALTER TABLE `event_data` ADD COLUMN date_value TIMESTAMP(0) AFTER event_date_value;
ALTER TABLE `event_data` ADD COLUMN event_data_id VARCHAR(36) AFTER event_id;
ALTER TABLE `event_data` ADD COLUMN number_value DECIMAL(19, 4) AFTER event_numeric_value;
ALTER TABLE `event_data` ADD COLUMN string_value VARCHAR(500) AFTER event_string_value;

UPDATE event_data
SET data_type = event_data_type,
    date_value = event_date_value,
    event_data_id = event_id,
    number_value = event_numeric_value,
    string_value = event_string_value;

ALTER TABLE `event_data` MODIFY data_type INTEGER UNSIGNED NOT NULL;
ALTER TABLE `event_data` MODIFY event_data_id VARCHAR(36) NOT NULL;

ALTER TABLE `event_data` DROP COLUMN event_data_type;
ALTER TABLE `event_data` DROP COLUMN event_date_value;
ALTER TABLE `event_data` DROP COLUMN event_id;
ALTER TABLE `event_data` DROP COLUMN event_numeric_value;
ALTER TABLE `event_data` DROP COLUMN event_string_value;

ALTER TABLE `event_data` ADD PRIMARY KEY(event_data_id);

之行下面的命令重新build:

npx prisma migrate resolve --rolled-back "02_report_schema_session_data"
yarn build

基本就ok了。

如果要使用其他的端口启动服务,使用下面的命令:

npx next start -p 4000

实际效果:

☆版权☆

* 网站名称:obaby@mars
* 网址:https://obaby.org.cn/
* 个性:https://oba.by/
* 本文标题: 《也谈自建统计》
* 本文链接:https://obaby.org.cn/2023/08/12993
* 短链接:https://oba.by/?p=12993
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

25 comments

  1.  Level 7
    Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn中国–浙江–台州 移动

    要被你发现我经常看你的网站了

  2. Level 4
    Firefox 116 Firefox 116 Android 13 Android 13 cn中国 中国电信

    umami挺够用的,也不怕拦截,docker一条命令跑起来了,好用的。

  3.  Level 4
    Microsoft Edge 116 Microsoft Edge 116 Windows 10 Windows 10 cn中国–山东 移动/全省通用

    部署了umami,感觉还不错,右下角小人好好看

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–济南 移动

      是叭,我也喜欢那个小人,嘻嘻
      小人可以从这里获取:https://counter.oba.by

  4.  Level 5
    Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn中国–河北–石家庄 联通

    Umami过于简单了,我还是比较需要想cnzz那样对来路、访客、具体文章比较详细的统计数据,这样便于seo,也能知道自己那篇文章受欢迎一些,指导自己写作的方向。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 移动

      访问量明细神马的也有,不过比cnzz这种功能可能会简单一些。
      至于seo神马的,我已经不太在意了。写什么纯粹看心情。嘻嘻

  5. Level 5
    Google Chrome 116 Google Chrome 116 Windows 10 Windows 10 us美国–华盛顿州–金–西雅图 Wowrack

    自己动手丰衣足食。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 移动

      嘻嘻,需要的话留言,给开账号哦~~留个账号名称就ok。

  6.  Level 6
    Microsoft Edge 116 Microsoft Edge 116 Windows 10 Windows 10 cn中国–北京–北京 移动/中国移动北京分公司

    CDN的流量还够用吗?可以帮你挂邀请链接哦~
    每月送30G,联盟会再送30G,加起来60G。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 移动

      嗯嗯,现在这个60凑到了。一个月我大约也就100多G的流量,不够的买个流量包吧。已经买了一个了~~
      薅羊毛也不能太狠,还得贡献点,不然薅秃了就没得薅了~~ rofl

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 移动

      嗯嗯。的确有这么个问题,不过感觉这个预充值的应该还好,是不是没有余额了就自动停掉了?如果能自动停止服务就无所谓了。服务器目前在家里。

  7. Level 3
    Google Chrome 102 Google Chrome 102 Windows 10 Windows 10 cn中国–湖南–邵阳 联通

    这文的起因不会是我在杜老师的广场问了一嘴统计吧(震惊)

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Android 10 Android 10 cn中国 中国联通

      哈哈哈 也不是,实在大佬论坛看到了有人提这个统计。然后就自己搭建了一个。不过杜老师那个在线聊天确实不错。嘎嘎

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注