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

这是一个重大变更版本:TeslaMate 使用 PostgreSQL 作为数据库,这是外部依赖,需要自己更新。我们现在需要 PostgreSQL 16.7 或 17.3 或更高版本,因为我们正在将捆绑的 earthdistance 扩展升级到 v1.2。如果您使用的是旧版本,TeslaMate 现在将无法启动。确保在升级 TeslaMate 之前升级您的数据库。要升级 PostgreSQL,您需要按照以下说明作:
将 PostgreSQL 升级到 postgres:17(此步骤必须擦除数据,这就是首先需要备份的原因。)
环境信息
产品型号: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 是否正常打开。


✅安装日志
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#
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

值友1330227455
校验提示文案
camarts
校验提示文案
pcform
校验提示文案
pcform
校验提示文案
千里挑一
校验提示文案
千里挑一
校验提示文案
pcform
校验提示文案
pcform
校验提示文案
camarts
校验提示文案
值友1330227455
校验提示文案