群晖 NAS 升级TeslaMate 1.33.0至 2.0.0 版本(2025.5)

2025-05-27 17:53:49 2点赞 6收藏 7评论
群晖 NAS 升级TeslaMate 1.33.0至 2.0.0 版本(2025.5)

TeslaMate GitHub项目地址

这是一个重大变更版本:TeslaMate 使用 PostgreSQL 作为数据库,这是外部依赖,需要自己更新。我们现在需要 PostgreSQL 16.7 或 17.3 或更高版本,因为我们正在将捆绑的 earthdistance 扩展升级到 v1.2。如果您使用的是旧版本,TeslaMate 现在将无法启动。确保在升级 TeslaMate 之前升级您的数据库。要升级 PostgreSQL,您需要按照以下说明作:


环境信息
产品型号:DS218+
DSM 版本:DSM 7.2.1-69057 Update 7
软件版本:TeslaMate 1.33.0
数据库版本:PostgreSQL 14

⚠️升级步骤:
1.备份数据 ——> 2.升级PostgreSQL ——> 3.升级TeslaMate ——> 4.验证服务


1.备份数据

ℹ️ 提示
TeslaMate数据备份可参照官方备份操作流程

1.1备份PostgreSQL数据

  • 切换到teslamate路径

cd /volume1/docker/teslamate/

teslamate路径地址可通过/docker/teslamate/文件夹属性获得。

  • 导出bck格式数据

docker-compose exec -T database pg_dump -U teslamate teslamate > /volume1/docker/teslamate/teslamate.bck

  • 导出sql格式数据

docker exec teslamate-database-1 pg_dump -U teslamate -W teslamate > /volume1/docker/teslamate/backup/teslamate_$(date +%Y%m%d).sql

1.2保存备份数据至本地

务必确保备份PostgreSQL数据文件离线备份到了本地,数据无价。

2.升级 PostgreSQL

⚠️数据无价谨慎操作
确保数据安全备份后,进行以下操作。

2.1停止所有TeslaMate容器

docker-compose down

2.2删除PostgreSQL数据库卷

⚠️注意:这将删除您之前记录的所有数据!在开始之前,请确保您的备份可以恢复。

docker volume rm "$(basename "$PWD")_teslamate-db"

2.3升级PostgreSQL数据库版本

  • 修改PostgreSQL版本号
    在docker-compose.yml中更改postgres版本image: postgres:14 ---> image: postgres:17

database: image: postgres:17 restart: always environment: - POSTGRES_USER=teslamate - POSTGRES_PASSWORD=XXXXXXXXX - POSTGRES_DB=teslamate - TZ=Asia/Shanghai volumes: - teslamate-db:/var/lib/postgresql/data

  • 更新PostgreSQL数据库

docker-compose up -d database

2.4恢复PostgreSQL备份数据

ℹ️ 提示
PostgreSQL备份数据恢复可参照官方恢复操作流程

  • 停止teslamate所有容器

docker-compose stop teslamate

  • 初始化PostgreSQL数据库
    删除现有数据并重新初始化(如果使用了不同的数据库用户,需要修改第一个 teslamate)。

docker-compose exec -T database psql -U teslamate teslamate << . DROP SCHEMA public CASCADE; CREATE SCHEMA public; CREATE EXTENSION cube WITH SCHEMA public; CREATE EXTENSION earthdistance WITH SCHEMA public; .

注意命令行中的最后一行包含点·

  • 恢复PostgreSQL备份数据

docker-compose exec -T database psql -U teslamate -d teslamate < /volume1/docker/teslamate/teslamate.bck

2.5重启PostgreSQL容器

  • 重启PostgreSQL容器服务

docker-compose up -d database

3.升级TeslaMate

3.1拉取最新TeslaMate镜像

docker-compose pull

3.2重新启动 TeslaMate容器

docker-compose up -d

4.验证服务

查看TeslaMate容器服务是否运行正常,访问TeslaMate门户 web 是否正常打开。

群晖 NAS 升级TeslaMate 1.33.0至 2.0.0 版本(2025.5)群晖 NAS 升级TeslaMate 1.33.0至 2.0.0 版本(2025.5)

安装日志

Using terminal commands to modify system configs, execute external binary files, add files, or install unauthorized third-party apps may lead to system damages or unexpected behavior, or cause data loss. Make sure you are aware of the consequences of each command and proceed at your own risk. Warning: Data should only be stored in shared folders. Data stored elsewhere may be deleted when the system is updated/restarted. amour@DS218:~$ sudo -i Password: root@DS218:~# cd /volume1/docker/teslamate/ root@DS218:/volume1/docker/teslamate# docker exec teslamate-database-1 pg_dump -U teslamate -W teslamate > /volume1/docker/teslamate/backup/teslamate_$(date +%Y%m%d).sql Password: JHGJa2sNbAkGXn root@DS218:/volume1/docker/teslamate# JHGJa2sNbAkGXn -ash: JHGJa2sNbAkGXn: command not found root@DS218:/volume1/docker/teslamate# docker-compose exec -T database pg_dump -U teslamate teslamate > /volume1/docker/teslamate/backup/`date +%Y%m%d%H%M%S`_teslamate.bck root@DS218:/volume1/docker/teslamate# docker-compose exec -T database pg_dump -U teslamate teslamate > /volume1/docker/teslamate/teslamate.bck root@DS218:/volume1/docker/teslamate# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 502d17b36f1c teslamate/teslamate:latest "tini -- /bin/sh /en…" 8 weeks ago Up 8 weeks 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp teslamate-teslamate-1 c94880ba3a22 teslamate/grafana:latest "/run.sh" 8 weeks ago Up 8 weeks 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp teslamate-grafana-1 5dedd7068282 eclipse-mosquitto:2 "/docker-entrypoint.…" 8 weeks ago Up 8 weeks 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp teslamate-mosquitto-1 8e4687523b8f postgres:14 "docker-entrypoint.s…" 8 weeks ago Up 8 weeks 5432/tcp teslamate-database-1 root@DS218:/volume1/docker/teslamate# docker-compose down [+] Running 5/5 ⠿ Container teslamate-grafana-1 Removed ⠿ Container teslamate-mosquitto-1 Removed ⠿ Container teslamate-teslamate-1 Removed ⠿ Container teslamate-database-1 Removed ⠿ Network teslamate_default Removed root@DS218:/volume1/docker/teslamate# docker volume rm "$(basename "$PWD")_teslamate-db" teslamate_teslamate-db root@DS218:/volume1/docker/teslamate# docker-compose up -d database [+] Running 15/15 ⠿ database Pulled 57.2s ⠿ 61320b01ae5e Pull complete 35.7s ⠿ 3db9b37be7c3 Pull complete 36.8s ⠿ e9a82aed48d7 Pull complete 37.6s ⠿ 7c852ebdd63e Pull complete 38.1s ⠿ 28708ff4e046 Pull complete 39.3s ⠿ 6ce13d85dabe Pull complete 39.9s ⠿ bd1fa28722bb Pull complete 40.2s ⠿ 410cd7ec9a40 Pull complete 40.5s ⠿ 475b0e32b814 Pull complete 52.0s ⠿ e7aba16d6a5e Pull complete 53.7s ⠿ 89ba8b615fa9 Pull complete 54.0s ⠿ 82697a7976df Pull complete 54.3s ⠿ 7e11eb1421f3 Pull complete 54.6s ⠿ 2bb588ce4e67 Pull complete 54.8s [+] Running 3/3 ⠿ Network teslamate_default Created 0.7s ⠿ Volume "teslamate_teslamate-db" Created 0.1s ⠿ Container teslamate-database-1 Started 2.1s root@DS218:/volume1/docker/teslamate# docker-compose stop teslamate root@DS218:/volume1/docker/teslamate# docker-compose exec -T database psql -U teslamate teslamate << . > DROP SCHEMA public CASCADE; > CREATE SCHEMA public; > CREATE EXTENSION cube WITH SCHEMA public; > CREATE EXTENSION earthdistance WITH SCHEMA public; > . DROP SCHEMA CREATE SCHEMA CREATE EXTENSION CREATE EXTENSION root@DS218:/volume1/docker/teslamate# docker-compose exec -T database psql -U teslamate -d teslamate < /volume1/docker/teslamate/teslamate.bck SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET CREATE EXTENSION COMMENT CREATE EXTENSION COMMENT CREATE TYPE ALTER TYPE CREATE TYPE ALTER TYPE CREATE TYPE ALTER TYPE CREATE TYPE ALTER TYPE CREATE TYPE ALTER TYPE CREATE TYPE ALTER TYPE CREATE FUNCTION ALTER FUNCTION CREATE FUNCTION ALTER FUNCTION CREATE FUNCTION ALTER FUNCTION CREATE FUNCTION ALTER FUNCTION SET SET CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE COPY 826 COPY 1 COPY 1 COPY 109128 COPY 299 COPY 5637 COPY 171 COPY 13616089 COPY 94 COPY 1 COPY 6971 COPY 1 COPY 21 setval -------- 826 (1 row) setval -------- 1 (1 row) setval -------- 1 (1 row) setval -------- 109128 (1 row) setval -------- 299 (1 row) setval -------- 182 (1 row) setval ---------- 13616121 (1 row) setval -------- 1 (1 row) setval -------- 11406 (1 row) setval -------- 1 (1 row) setval -------- 6362 (1 row) setval -------- 21 (1 row) ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE root@DS218:/volume1/docker/teslamate# docker-compose pull [+] Running 28/28 ⠿ teslamate Pulled 73.6s ⠿ 8a628cdd7ccc Pull complete 49.4s ⠿ ed2076f20d03 Pull complete 50.6s ⠿ 8c8ca1151c4c Pull complete 51.5s ⠿ ce216533c7a2 Pull complete 52.0s ⠿ 3be5db24255e Pull complete 67.6s ⠿ fe44939c2ce4 Pull complete 69.1s ⠿ database Pulled 4.2s ⠿ grafana Pulled 74.5s ⠿ f18232174bc9 Already exists 0.0s ⠿ dd95f48fea40 Pull complete 5.2s ⠿ d8720f512857 Pull complete 10.8s ⠿ 1726751e7b2a Pull complete 26.1s ⠿ ef69f5a407da Pull complete 26.6s ⠿ 48a0b989eb4b Pull complete 27.0s ⠿ 5292e3126d0d Pull complete 49.8s ⠿ 1e545566de31 Pull complete 60.7s ⠿ 51b5579032bc Pull complete 63.6s ⠿ 55e463089067 Pull complete 64.0s ⠿ 6704e5f4b681 Pull complete 64.5s ⠿ b224a2d5e79d Pull complete 65.0s ⠿ d355a9fdf596 Pull complete 65.4s ⠿ 3e91fc86516e Pull complete 65.9s ⠿ 6f680a227fe8 Pull complete 67.0s ⠿ 495928fed2e7 Pull complete 68.2s ⠿ bf99d1f7e253 Pull complete 68.9s ⠿ 201936771044 Pull complete 70.0s ⠿ mosquitto Pulled 4.0s root@DS218:/volume1/docker/teslamate# docker-compose up -d [+] Running 4/4 ⠿ Container teslamate-grafana-1 Started ⠿ Container teslamate-mosquitto-1 Started ⠿ Container teslamate-teslamate-1 Started ⠿ Container teslamate-database-1 Running root@DS218:/volume1/docker/teslamate#

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
7评论

  • 精彩
  • 最新
  • 已测试升级成功。

    校验提示文案

    提交
  • 能够出一期nas安装教程呀,总是提示失败

    校验提示文案

    提交
  • 感谢分享,绿联Nas升级成功,把"docker-compose"改为"docker compose"即可。

    校验提示文案

    提交
    飞牛也是这样

    校验提示文案

    提交
    收起所有回复
  • dhuar的Teslamate docker镜像似乎不再更新了,停留在了2.1.0版本,中文文档站也关闭了。要更新到最新版2.1.1的需要改为官方英文版。

    校验提示文案

    提交
  • 大佬,有没有布置teslamate的教程,按照另一片文章卡到这一步了,不知道怎么解决

    校验提示文案

    提交
  • 以下是被折叠的评论 查看
已折叠部分评论
展开
收起
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

值友1330227455

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
6
扫一下,分享更方便,购买更轻松