Umami 3.0版本升级指南,平滑迁移,无需数据库命令

云泽 发布于 10 小时前 21 次阅读 最后更新于 9 小时前


AI 摘要

从MySQL平滑迁移到PostgreSQL,无需复杂命令。本文提供基于1Panel的Umami 3.0升级完整指南,涵盖数据库备份、数据转移及新版本部署,助你安全、高效完成升级。
如果全新安装请跳转至不依靠1panel安装umami

前言

官方升级教程如下 点击此处

本机环境如下,使用1panel【1】 v2.0面板【2】,debian12【3】,mysql【4】升级到PostgreSQL【5】

请提前做好数据库备份【6】

安装旧版V2.19的PostgreSQL版本的umami

首先安装V2.19【7】的PostgreSQL版本的umami【8】,正常安装即可,只需成功启动就可以将容器【9】停止,1panel中如下图

1770805018 1770805018 image

转移数据库操作

打开数据库软件,如DBeaver ,Navicat【10】等,本文使用的是DBeaver【11】,第一个为mysql的umami,第二个为PostgreSQL的umami,

1770805454 1770805454 image 1770805621 1770805621 image

DBeaver会自动Truncate(截断),所以无需关注官方升级指南中的内容

在表映射【13】选项中,目标容器【14】为PostgreSQL的umami

1770808822 1770808822 image 1770808910 1770808910 image

在数据加载设置【15】中会弹出是否截断数据【16】,选择是即可,然后一路向下在确认选项中选择继续,等待数据库复制完毕,数据较大的话复制时间较长,请耐心等待

1770808993 1770808993 image 1770809080 1770809080 image

升级v3.0的umami

卸载v2旧版本umami

此处推荐读者卸载v2版本的umami,请注意,在1panel面板中,卸载应用【17】默认选择删除数据库,请取消勾选

1770809515 1770809515 image

安装v3新版本umami

安装时选择3.0版本及以上即可,数据库服务【18】默认只有PostgreSQL,数据库名【19】和数据库用户【20】和用户密码【21】安装v2.19的PostgreSQL版本的umami安装时所写即可,至此全部结束 1770809704 1770809704 image

不依靠1panel安装umami

创建一个docker-compose.yml,创建并填入以下内容后输入docker compose up -ddocker-compose up -d

services:
  # umami 服务配置
  umami:
    # 使用的镜像:从 Docker Hub 拉取 umamisoftware/umami 的最新版本
    image: umamisoftware/umami:latest
    # 容器运行后的名称
    container_name: umami
    # 重启策略:除非手动停止,否则容器退出时自动重启
    restart: unless-stopped
    # 端口映射:将宿主机的 127.0.0.1:3011 映射到容器的 3000 端口
    # 127.0.0.1 限制仅本机可访问,避免直接暴露服务到公网
    ports:
      - 127.0.0.1:3011:3000
    # 环境变量配置
    environment:
      # 数据库连接 URL,格式:postgresql://用户名:密码@主机:端口/数据库名
      # 请替换 username、password 为实际值,127.0.0.1:5432 为宿主机 PostgreSQL 地址
      DATABASE_URL: postgresql://username:password@127.0.0.1:5432/umami
      # 数据库类型,固定为 postgresql
      DATABASE_TYPE: postgresql
      # APP_SECRET 在此版本实际不起作用,仅为占位
      # APP_SECRET: umami_h6p5Nr
    # 健康检查配置:定期检测服务是否存活
    healthcheck:
      # 检测命令:通过 curl 请求容器内的心跳接口
      test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
      # 每 5 秒检测一次
      interval: 5s
      # 单次检测超时时间 5 秒
      timeout: 5s
      # 连续失败 5 次后标记为不健康
      retries: 5
    # 以下是加入 1Panel 已存在网络的方法,一般无需使用
    # 如果 umami 需要与 1Panel 管理的其他容器通信,可取消注释并配置
    #networks:
    #  - 1panel-network  # 加入 1panel 创建的外部网络

# 声明网络(如使用上述 networks 配置则需要取消注释)
#networks:
  #1panel-network:
    #external: true  # 使用已存在的外部网络,不由当前 compose 创建

总结

umami3.0带来了许多改进和新特性,特别是解决安全问题,旧mysql版只需安照上述更新流程即可,常见问题询问ai即可解决,只要做好备份,一般而言不会有大问题。

*这是一则由 Google AdSense 自动推荐的广告,不代表本站立场
*这是一则由 Google AdSense 自动推荐的广告,不代表本站立场