- config.py 新增 PEAR_DATA_DIR(默认 <项目根>/data),SQLite 库、Flask-Session
统一收进 DATA_DIR;不设时本地开发行为不变
- applications/__init__.py 顶部先 load_dotenv,保证 .env 里的 PEAR_DATA_DIR
在 config 导入时就生效
- extensions/init_sqlalchemy.py 接 SQLite connect 事件:WAL + synchronous=NORMAL
+ busy_timeout=30s(多 worker 写不再撞锁)
- config.py 注入 SQLALCHEMY_ENGINE_OPTIONS(pool_pre_ping + SQLite connect_args
超时;MySQL 路径下自动跳过 connect_args 防止参数错误)
- 新增 alembic 迁移 a47a5d2a3f1b 建 site_nav_click(含 anon_id 字段),
解决之前该表只由 db.create_all 建、不在迁移链里的隐患
- .gitignore / .dockerignore 加 data/ 排除规则(且把 migrations/ 从
ignore 里重新放行 —— 否则新加的迁移进不了库)
- NAS Docker 部署全面重写:
- compose 唯一绑定挂载 ./data:/app/data,宿主 File Station 看得见
- start.sh 自检 data 目录 + 子目录;workers 默认改为 1 threads 8
(SQLite 写串行,单进程最稳)
- 新增 backup.sh:sqlite3 .backup 在线热备(确保 WAL 一致性)+ 压缩
+ 保留 14 天
- Dockerfile 安装 sqlite3 客户端备用,建 /app/data 子目录并 chown
- docs/deployment-nas.md 重写数据持久化章节(路径表 + 热备命令 +
恢复步骤 + 整库迁移 tar/untar 流程)
67 lines
1.3 KiB
Plaintext
67 lines
1.3 KiB
Plaintext
# =====================================================
|
|
# Pear Admin Flask - Docker 构建期排除
|
|
# =====================================================
|
|
# 防止 .git / 缓存 / 测试截图 / 一次性脚本进镜像
|
|
# 注意:运行时数据(pear.db)通过 docker-compose volume 挂载,
|
|
# 这里排除 *.db 只是防止源代码里的 db 文件被误 COPY
|
|
|
|
# ---- VCS ----
|
|
.git/
|
|
.gitignore
|
|
.github/
|
|
|
|
# ---- Python 缓存 ----
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
|
|
# ---- 虚拟环境 ----
|
|
venv/
|
|
.venv/
|
|
env/
|
|
|
|
# ---- 数据库 / 运行时数据 ----
|
|
# pear.db 不在源码里(运行时由容器创建 + 卷挂载),这里排除只是兜底
|
|
*.db
|
|
*.db.bak
|
|
pear.db.before_dedup.*
|
|
# 数据目录(含 pear.db / backup / flask_session),整目录不进镜像,由 volume 接管
|
|
data/
|
|
data/*/
|
|
|
|
# ---- 日志 ----
|
|
*.log
|
|
logs/
|
|
|
|
# ---- Flask ----
|
|
instance/
|
|
flask_session/
|
|
|
|
# ---- IDE / 编辑器 ----
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
|
|
# ---- 构建 / 测试产物 ----
|
|
build/
|
|
dist/
|
|
*.egg-info/
|
|
.pytest_cache/
|
|
htmlcov/
|
|
|
|
# ---- 测试截图 / 探针脚本输出 ----
|
|
scripts/_verify_*.png
|
|
scripts/screenshots/
|
|
output/
|
|
|
|
# ---- 开发用 docker 配置(不进 NAS 镜像)----
|
|
deploy/dev/
|
|
|
|
# ---- 一次性工具 ----
|
|
nav_extracted.js
|
|
dedup_nav.py
|
|
|
|
# ---- 环境变量文件(不进镜像)----
|
|
.env
|
|
.env.*.local |