· ops · 2 min 阅读
升级 Umami 到 v3 版本
升级 Umami 到 v3 版本,并解决 MySQL 数据库转移到 PostgreSQL 数据库的兼容问题。
作为 Umami v3 的一部分,我们将移除 MySQL 作为受支持的数据库选项,并统一采用 PostgreSQL。这意味着,如果你前期使用 MySQL 数据库,那就必须先做好数据迁移才能使用 v3 版本。下面的迁移案例,是基于 1Panel 面板的案例。
一、使用 PostgreSQL 数据库安装 Umami
使用 1Panel 安装 Umami,数据库选择 PostgreSQL,然后安装版本、数据库名、用户名、密码和哈希盐,需要与之前安装的一致。
二、迁移数据
假设你的数据库信息如下
# 数据库名
umami
# 用户名
admin
# 密码
pass
# MySQL 容器名
docker-mysql
# PostgreSQL 容器苗
docker-postgresql - 生成 MySQL 转存文件
docker exec docker-mysql mysqldump --no-create-info --default-character-set=utf8mb4 --quick --skip-add-locks --no-tablespaces -u admin -ppass umami > mydbdump.sql - 将反引号替换为双引号,使其与PostgreSQL兼容。
sed -i 's/`/"/g' mydbdump.sql - 将
\'(反斜杠+单引号)替换成''(两个单引号)
sed -i "s/\\\\'/''/g" mydbdump.sql - 清空以下表格。这些表格的数据将从 MySQL 导入中获取
docker exec -i docker-postgresql psql -U admin -d umami -c 'TRUNCATE TABLE "_prisma_migrations"; TRUNCATE TABLE "user";' - 使用 psql 运行转储文件
docker exec -i docker-postgresql psql -U admin -d umami < mydbdump.sql 三、升级应用
现在你可以升级基于 PostgreSQL 的 Umami 到最新版本了,如果 1Panel 不提示升级,那你可以先备份 PostgreSQL 数据库,然后卸载刚刚安装的应用,再去安装最新的版本,数据库等信息与刚刚建立的一致即可。
分享: