Immich数据库备份-恢复教程

教程基于Mac Mini M4 + OrbStack

不知道为什么自动备份数据库失败了,说是数据库目录有损坏,我只好备份了一下immich的数据库,然后重建dataabase容器。

进入容器
docker exec -it immich_postgres bash

备份数据库
pg_dump -U postgres immich > /tmp/immich.sql

把文件移动到另外一个目录
docker cp immich_postgres:/tmp/immich.sql /Volumes/KIOXIA/immich.sql

然后在OrbStack里删除database容器,把immich根目录相应的postgres目录也删除

在immich目录执行
docker-compose pull && docker-compose up -d

把数据库文件移到database里
docker cp /Volumes/KIOXIA/immich.sql immich_postgres:/tmp/immich.sql

进入 psql
psql -U postgres

切换到 immich 数据库
\c immich

清空数据库
DO $$ DECLARE
    r RECORD;
BEGIN
    -- 直接删除所有表(CASCADE 会自动删除依赖,包括外键)
    FOR r IN (SELECT table_name FROM information_schema.tables WHERE table_schema='public') LOOP
        EXECUTE 'DROP TABLE IF EXISTS "' || r.table_name || '" CASCADE';
    END LOOP;
END $$;

退出 psql
\q

导入备份
psql -U postgres -d immich -f /tmp/immich.sql



声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
搜索