Docker 部署 Umami,切换数据库至 PgSQL [复制链接]

帖子链接已复制到剪贴板
ROYWANG (UID: 539) 7月前
帖子已经有人评论啦,不支持删除!

626 0

数据迁移至 PgSQL

需要注意几点:

1、在数据迁移前,需要使用与自编译版本相同的 Umami Docker 镜像,当数据迁移完成后,运行访问服务测试没有问题,再进行升级操作。此处使用的是 v2.9.0。

2、需要开放 服务器的 3306 以及 5432 端口。

3、数据迁移后可能会出现一些 BUG,不过我暂时没有碰到(免责声明)。

部署与自编译版本相同的 Umami

将下列配置保存为 docker-compose.yaml 文件,数据库信息的修改请看上一节文件中的注释。

请注意删除注释以及修改相关配置。

version: '3'
services:
umami:
  image: ghcr.io/umami-software/umami:postgresql-v2.9.0
      //如果你在使用国内服务器部署 Umami,可以使用南京大的ghcr镜像:ghcr.nju.edu.cn
      //修改为对应的 Umami 版本
  //image: ghcr.nju.edu.cn/umami-software/umami:postgresql-latest
  ports:
    - "3000:3000"
  environment:
    DATABASE_URL: postgresql://umami:umami@db:5432/umami
    DATABASE_TYPE: postgresql
    APP_SECRET: replace-me-with-a-random-string
  depends_on:
    db:
      condition: service_healthy
  restart: always
  healthcheck:
    test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
    interval: 5s
    timeout: 5s
    retries: 5
db:
  image: postgres:15-alpine
  ports:
    - "5432:5432"
  environment:
    POSTGRES_DB: umami
    POSTGRES_USER: umami
    POSTGRES_PASSWORD: umami
  volumes:
    - /www/wwwroot/umami/PgSQL:/var/lib/postgresql/data
    //PgSQL数据库镜像数据存储的路径,请酌情修改
  restart: always
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
    interval: 5s
    timeout: 5s
    retries: 5

用 cd 命令打开 docker-compose.yaml 的目录,运行下列命令:

docker-compose up -d

构建容器启动后,可以进行下一步。

使用 Navicat Premium 迁移数据

再此再次感谢 Shell !!!!!

容器启动后,打开 Navicat Premium ,新建 MySQL 与 PgSQL 数据库的链接。

点击导航栏中:工具 ---> 数据传输,左侧 MySQL,右侧 PgSQL,具体配置如图:

点击下方导航栏的选项,具体配置如图:

点击下一步,此处需要传输的表仅四个:session、user、website、website_event。

如果需要别的表,可以尝试传输,但并不保证可以正常使用。

点击下一步,然后开始,此步骤根据服务器配置以及带宽和数据量的不同,所需时间不同。

最后一行显示 Finished with error 则为数据迁移完成。

重启 Umami 以及 PgSQL 容器:

docker restart umami-db-1
docker restart umami-umami-1
//具体容器名称可以使用 docker ps 命令查看

访问 http://ip:3000 使用原用户名、密码登录,测试数据是否正确,以及是否有什么 BUG。

在此需要注意:请删除原有的 admin 账户。

如无问题,可进行下一步。

升级 Umami

编辑 docker-compose.yaml 替换为以下内容:

version: '3'
services:
umami:
  image: ghcr.io/umami-software/umami:postgresql-latest
  //如果你在使用国内服务器部署 Umami,可以使用南京大的ghcr镜像:ghcr.nju.edu.cn
  //image: ghcr.nju.edu.cn/umami-software/umami:postgresql-latest
  ports:
    - "3000:3000"
  environment:
    DATABASE_URL: postgresql://umami:umami@db:5432/umami
    //Umami数据库设置,可修改,但也请修改 PgSQL 镜像中的配置信息
    DATABASE_TYPE: postgresql
    APP_SECRET: replace-me-with-a-random-string
  depends_on:
    db:
      condition: service_healthy
  restart: always
  healthcheck:
    test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
    interval: 5s
    timeout: 5s
    retries: 5
db:
  image: postgres:15-alpine
  environment:
    POSTGRES_DB: umami
    POSTGRES_USER: umami
    POSTGRES_PASSWORD: umami
    // PgSQL 数据信息
  volumes:
    - /www/wwwroot/umami:/var/lib/postgresql/data
    //PgSQL数据库镜像数据存储的路径,请酌情修改
  restart: always
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
    interval: 5s
    timeout: 5s
    retries: 5

运行下列命令:

docker-compose up -d

此时,因为需要升级程序数据库,所以根据服务器性能不同所需时间不同。

升级数据库完成后,打开 http://ip:3000 即可进行使用。

使用 nginx 进行反代操作此处不再赘述。

再次强调:请删除原有的 admin 账户。

至此 Umami 数据迁移基本完成~

 

原文:https://roy.wang/docker-umami-to-pgsql/

这家伙太懒了,什么也没留下。
已有评论 (0)
提示:您必须 登录 才能查看此内容。
创建新帖
广告推广点击空位自助购买