本文最后修改于2023 13th 7 月 at 11:53 下午

Umami2.0:Vercel+Supspace 从1.4升级到2.2(umami升级教程)

Umami2.0:Vercel+Supspace 从1.4升级到2.2(umami升级教程)前言Umami大版本升级prepared statement 's0' already exits解决方法Umami js大陆访问(套CDN)

前言

Umami最近大版本更新了,但是我太懒了,一直没升级,也一直在想要不要直接迁移到服务器上,省的Vercel+supsapce一直不方便.而且umami没法统计到大陆用户的访问,是因为umami.js被墙了,大陆没办法访问到.趁今天有时间,所幸看一看白嫖方案升级是否容易,顺便解决一下大陆访问问题.

想要搭建的可以看我之前写的Umami1的白嫖教程!

本文将解决:

  1. Vercel Umami大版本升级
  2. Umami js大陆访问(套CDN)

当然还会附带我在部署过程中碰到的一个BUG的解决方法.

Umami大版本升级

(只针对Vercel等类似平台的升级,自己服务器的升级可以查看Umami官方文档,十分简单)

不得不夸赞作者,升级真的是相当简单!

前提:电脑有Node.js,yarn环境,这个是必须的,我尝试用Github的codespace代替,但是会出现爆栈问题.

Umami2的数据库结构发生了变化,由于在Vercel之类的托管平台没有权限,作者贴心的给出了数据库升级方案

git clone https://github.com/umami-software/migrate-v1-v2.git 
cd migrate-v1-v2

克隆了migratev1-v2的文件后,进入文件夹,使用命令行执行

yarn install
yarn build

然后在文件夹内创建.env文件,编辑内容如下:

DATABASE_URL={connection url} ({}不需要)

然后继续执行

yarn start

等待执行完毕,查看数据库可以发现数据库表发生变化umami 迁移

然后fork Umami2.2仓库,在Vercel里重新部署或搭建即可,搭建的过程和以前一样需要HASH_SALT以及DATABASE_URL的环境值.

PS:2.0后Umami的静态文件从umami.js改成了script.js,需要重新修改

prepared statement 's0' already exits解决方法

这个在umami的issue里找到了解决方法,是我在部署Vercel时候碰到的bugumami 出现问题

解决方法就是在DATABASE_URL后面加?pgbouncer=true

例如:postgres://postgres:[YOUR-PASSWORD]@[host].supabase.co:6543/postgres?pgbouncer=true

Umami js大陆访问(套CDN)

看的一个博主的教程

简单而言就是把umami给你的链接是一个js文件,下载下来,放到你的CDN中或者大陆能访问的服务器里,访问的时候访问你自己存储的文件就好了.

还得改一下跟踪代码,原来是这样的.

<script async src="https://ver.aprdec.top/script.js"
data-website-id="25248b78-56df-4127-a7ca-093c3859fdf2">
   </script>

需要修改成

<script async="" src="https://qiniu.aprdec.top/script.js" 
data-website-id="25248b78-56df-4127-a7ca-093c3859fdf2"
data-host-url="https://ver.aprdec.top">
   </script>

如你所见,多了data-host-url的属性,该属性填写你的Umami的域名(不是CDN的域名),然后就可以出现五星红旗拉!


Angel,请你不要放开我的手