也谈自建统计

其实在使用各种第三方的统计之前,一直用的都是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://h4ck.org.cn/
* 个性:https://oba.by/
* 本文标题: 《也谈自建统计》
* 本文链接:https://h4ck.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 6
    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 cnGuangdong Zhongshan

    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 cnAsia/Shanghai

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

发表回复

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