昨天为了节约时间,用了Umami Cloud官方的免费版本做统计,正在美滋滋中,后来有水友留言说官方的一言不合就要停一下,官方的界面,其实还挺好
反正自己也想搭建,果断的自己搞一个出来吧,首先想到的是keyob.app,尽管他老是跳验证,验证还慢,但他支持docker直接部署,就再用用吧
直接建立一个,用上aiven.io的Mysql,因为keyob的免费机房只能选 华盛顿和法兰克福,所以aiven只能选弗吉尼亚节点
轻松成功,但是速度相当不令人如意…挺慢的,而且因为keyob.app的免费版限制,不能绑定域名,就不能白嫖CF大善人的加速了..
谷歌了下,果然有VERCEL上也可以部署,瞅了瞅vercel的节点,又看了看AIVEN的节点,想着umami还支持pasql,于是果断想起了另一个大善人supabase,节点多,速度快
老步骤:
- 创建一个supabase数据库,获取连接串 postgres://帐号:[password]@host:6543/postgres
- fockumami
- 在vercel新建项目,勾选fork的umami,然后在 Environment Variables 里添加一个KEY,名字为DATABASE_URL,值就是上面的串
- deploy
- enjoy
本想有教程在,不出意外就成功了,结果不出意外之外的就出意外了,报错..
prepared statement “s0” does not exist
错误信息
[23:18:04.355] ✗ Command failed: prisma migrate deploy
[23:18:04.355] Error: Schema engine error:
[23:18:04.355] db error: ERROR: prepared statement "s0" does not exist
官方git解决方案
马上去umami的git上查,结果还真和我一样的,在这里 issues#2426>>
最后得到的解决方法:
就是在
postgres://帐号:[password]@host:6543/postgres后面加 ?pgbouncer=true
再重启 supabase 就好了
还是有错
好家伙,果断加上,然后重新部署,想着又就好了,结果又出意外了,卡在了
[23:17:56.843] ✓ DATABASE_URL is defined.
[23:17:58.048] ✓ Database connection successful.
[23:18:00.166] ✓ Database version check successful.
一直卡住~~不动了…
继续查找
去搜,似乎所有的都指向上面这个,突然在一个回复看到 supabase取消了pgbouncer兼容性,于是去翻官方关于prisma的说明,正好,被我谷歌到了
原文在此:https://supabase.com/partners/integrations/prisma
官方专门说明了这个:
也就是说,要获取会话连接池字符串,应该用
postgres://[db-user].[project-ref]:[db-password]@aws-0-[aws-region].pooler.supabase.com:5432/[db-name]
而不是默认的事务池连接
postgres://[db-user].[project-ref]:[db-password]@aws-0-[aws-region].pooler.supabase.com:6543/[db-name]?pgbouncer=true&connection_limit=1
解决
把 DATABASE_URL 的值从
postgres://帐号:[password]@host:6543/postgres
改为
postgres://帐号:[password]@host:5432/postgres
一切正常….
评论
Twikoo V1.6.39