UNRAID环境恢复teslamate数据
背景:
一好友在腾讯云上通过一键安装工具安装了teslamate,已积攒数据1年多。得知unraid系统可安装teslamate后详见https://post.smzdm.com/p/a5o99l07/希望迁移数据到我这。有了以下折腾的内容,特此记录。
1.备份数据
详见https://docs.teslamate.org/docs/maintenance/backup_restore,主要思路是ssh登入腾讯云,先备份数据到容器,再从容器复制到腾讯云宿主机
2.拷贝数据
登入unraid,从腾讯云拷贝备份到unraid宿主机
3.新建psql容器
详见https://post.smzdm.com/p/a5o99l07/步骤1
4.从宿主机拷贝备份到第3步的容器
容器内新建backup文件夹,从宿主机拷贝备份到backup文件夹
root@UNRAID:~# docker cp /mnt/user/backup8tb/teslamate.bck 675952edd6ab:/backup
/mnt/user/backup8tb/teslamate.bck 源数据地址
675952edd6ab 容器ID
/backup 容器内目标目录地址
5.清除数据库内原数据
psql容器内执行
psql -U teslamate 登入teslamate账号
drop schema public cascade;
create schema public;
create extension cube;
create extension earthdistance;
CREATE OR REPLACE FUNCTION public.ll_to_earth(float8, float8)
RETURNS public.earth
LANGUAGE SQL
IMMUTABLE STRICT
PARALLEL SAFE
AS 'SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians($1))*cos(radians($2))),public.earth()*cos(radians($1))*sin(radians($2))),public.earth()*sin(radians($1)))::public.earth';
.
注意上述内容是官方文档的资料,需要删除,否则会报错。改成以下内容。感谢https://www.xiaote.com/r/6437be9d9bee997d2d481e16
drop schema public cascade;
create schema public;
create extension cube;
create extension earthdistance;
CREATE OR REPLACE FUNCTION public.ll_to_earth(float8, float8)
RETURNS public.earth
LANGUAGE SQL
IMMUTABLE STRICT
PARALLEL SAFE
AS 'SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians($1))*cos(radians($2))),public.earth()*cos(radians($1))*sin(radians($2))),public.earth()*sin(radians($1)))::public.earth';
6.清除成功的提示
7.恢复数据库
# psql -U teslamate -d teslamate < /backup/teslamate.bck
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


yuansixun
校验提示文案
yuansixun
校验提示文案