fix: 备份前执行 WAL checkpoint + 确保本地目录存在
- 复制数据库文件前通过 docker exec sqlite3 执行 PRAGMA wal_checkpoint(TRUNCATE), 确保 WAL 内容合并到 .db 主文件,避免备份不一致或损坏 - 添加 mkdir -p 确保本地备份目录存在
This commit is contained in:
parent
f3373d6f9a
commit
d65583f6df
|
|
@ -11,11 +11,19 @@ log() { echo "[$(date '+%H:%M:%S')] $1"; }
|
|||
|
||||
log "开始备份云端数据库..."
|
||||
|
||||
# 备份前执行 WAL checkpoint,确保数据全部合并到 .db 主文件
|
||||
log "执行 WAL checkpoint..."
|
||||
ssh txjp "docker exec assets-ai sqlite3 /app/data/assets.db 'PRAGMA wal_checkpoint(TRUNCATE)' && \
|
||||
docker exec issue-ai sqlite3 /app/data/issue.db 'PRAGMA wal_checkpoint(TRUNCATE)'"
|
||||
|
||||
# 云端打包
|
||||
ssh txjp "mkdir -p /tmp/db-backup && \
|
||||
cp /root/docker/assets-ai/data/assets.db /tmp/db-backup/assets-${TIMESTAMP}.db && \
|
||||
cp /root/docker/issue-ai/data/issue.db /tmp/db-backup/issue-${TIMESTAMP}.db"
|
||||
|
||||
# 确保本地备份目录存在
|
||||
mkdir -p "${LOCAL_DIR}"
|
||||
|
||||
# 复制到本地
|
||||
log "复制到本地..."
|
||||
scp "txjp:/tmp/db-backup/assets-${TIMESTAMP}.db" "${LOCAL_DIR}/"
|
||||
|
|
|
|||
Loading…
Reference in New Issue