fix(snapshot): DATABASE_URL 改绝对路径,修复 SQLite 每次重建丢数据

Prisma 的 file:./data/snapshot.db 相对于 schema.prisma 所在目录
(/app/prisma/),实际创建在 /app/prisma/data/snapshot.db,不在
volume 挂载的 /app/data/ 下,导致容器重建后数据丢失。

改为 file:/app/data/snapshot.db 绝对路径,确保 SQLite 存入
volume 挂载目录,数据跨容器持久化。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-02-24 01:48:24 -08:00
parent 7b7bfcac93
commit 9cbc0ba580
4 changed files with 5 additions and 4 deletions

View File

@ -19,7 +19,7 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- APP_PORT=3199 - APP_PORT=3199
- DATABASE_URL=file:./data/snapshot.db - DATABASE_URL=file:/app/data/snapshot.db
# PostgreSQL-2 (备份目标) # PostgreSQL-2 (备份目标)
- PG_HOST=postgres-2 - PG_HOST=postgres-2
- PG_PORT=5432 - PG_PORT=5432

View File

@ -14,7 +14,7 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- APP_PORT=3099 - APP_PORT=3099
- DATABASE_URL=file:./data/snapshot.db - DATABASE_URL=file:/app/data/snapshot.db
# PostgreSQL (备份目标) # PostgreSQL (备份目标)
- PG_HOST=postgres - PG_HOST=postgres
- PG_PORT=5432 - PG_PORT=5432

View File

@ -1,6 +1,7 @@
NODE_ENV=development NODE_ENV=development
APP_PORT=3099 APP_PORT=3099
DATABASE_URL="file:./data/snapshot.db" DATABASE_URL="file:./data/snapshot.db"
# Docker 部署时 docker-compose 覆盖为绝对路径: file:/app/data/snapshot.db
# PostgreSQL (被备份目标) # PostgreSQL (被备份目标)
PG_HOST=localhost PG_HOST=localhost

View File

@ -7,7 +7,7 @@ COPY package*.json ./
RUN npm ci RUN npm ci
COPY prisma ./prisma/ COPY prisma ./prisma/
RUN DATABASE_URL="file:./data/snapshot.db" npx prisma generate RUN DATABASE_URL="file:/app/data/snapshot.db" npx prisma generate
COPY . . COPY . .
RUN npm run build RUN npm run build
@ -36,7 +36,7 @@ COPY package*.json ./
RUN npm ci --only=production RUN npm ci --only=production
COPY prisma ./prisma/ COPY prisma ./prisma/
RUN DATABASE_URL="file:./data/snapshot.db" npx prisma generate RUN DATABASE_URL="file:/app/data/snapshot.db" npx prisma generate
COPY --from=builder /app/dist ./dist COPY --from=builder /app/dist ./dist