输入搜索…

· ops · 2 min 阅读

升级 Umami 到 v3 版本

升级 Umami 到 v3 版本,并解决 MySQL 数据库转移到 PostgreSQL 数据库的兼容问题。

升级 Umami 到 v3 版本

@eugenivy_now

作为 Umami v3 的一部分,我们将移除 MySQL 作为受支持的数据库选项,并统一采用 PostgreSQL。这意味着,如果你前期使用 MySQL 数据库,那就必须先做好数据迁移才能使用 v3 版本。下面的迁移案例,是基于 1Panel 面板的案例。


一、使用 PostgreSQL 数据库安装 Umami

使用 1Panel 安装 Umami,数据库选择 PostgreSQL,然后安装版本、数据库名、用户名、密码和哈希盐,需要与之前安装的一致。


二、迁移数据

假设你的数据库信息如下

    # 数据库名
umami
# 用户名
admin
# 密码
pass
# MySQL 容器名
docker-mysql
# PostgreSQL 容器苗
docker-postgresql
  1. 生成 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
  1. 将反引号替换为双引号,使其与PostgreSQL兼容。
    sed -i 's/`/"/g' mydbdump.sql
  1. \'(反斜杠+单引号)替换成 ''(两个单引号)
    sed -i "s/\\\\'/''/g" mydbdump.sql
  1. 清空以下表格。这些表格的数据将从 MySQL 导入中获取
    docker exec -i docker-postgresql psql -U admin -d umami -c 'TRUNCATE TABLE "_prisma_migrations"; TRUNCATE TABLE "user";'
  1. 使用 psql 运行转储文件
    docker exec -i docker-postgresql psql -U admin -d umami < mydbdump.sql

三、升级应用

现在你可以升级基于 PostgreSQL 的 Umami 到最新版本了,如果 1Panel 不提示升级,那你可以先备份 PostgreSQL 数据库,然后卸载刚刚安装的应用,再去安装最新的版本,数据库等信息与刚刚建立的一致即可。

分享:
返回文章列表