跳到主要内容

阶段 B:P2 全部走 PostgreSQL(去掉 aux sqlite)

状态(2026-06-13):生产中心库是 ECS Docker PostgreSQL (biof3-pg),Phase B 已完成。本文保留为历史操作记录;写入类旧迁移脚本 已要求 BIOF3_ALLOW_LEGACY_PG_IMPORT=1,不要对当前生产库重复导入旧 aux/sqlite。

目标

  • Copilot / analytics / feedback 等 P2 表读写 PostgreSQL,不再依赖 biof3-aux.sqlite
  • 环境:BIOF3_P2_PG=1删除或注释 BIOF3_PG_AUX_SQLITE_PATH

Dell 操作(维护窗口)

ssh dell-direct
set -a && source /etc/biof3.env && set +a

# 1) 历史操作:把 aux 里 cutover 后的增量再并入 PostgreSQL(当前生产勿重复执行)
export BIOF3_PG_AUX_SQLITE_PATH=/opt/biof3-r-server/biof3-aux.sqlite
BIOF3_ALLOW_LEGACY_PG_IMPORT=1 node /opt/biof3-r-server/scripts/merge-aux-into-pg.mjs

# 2) 切换 Phase B
sudo sed -i '/^BIOF3_PG_AUX_SQLITE_PATH=/d' /etc/biof3.env
grep -q '^BIOF3_P2_PG=' /etc/biof3.env || echo 'BIOF3_P2_PG=1' | sudo tee -a /etc/biof3.env

# 3) 重启
pm2 restart biof3-r-server --update-env
pm2 logs biof3-r-server --lines 20 --nostream | grep -E '\[db\]|Phase B'

日志应出现:Phase B: P2 via PostgreSQLPhase B: P2 tables via PostgreSQL

回滚

# 恢复 aux 路径,去掉 P2_PG
echo 'BIOF3_PG_AUX_SQLITE_PATH=/opt/biof3-r-server/biof3-aux.sqlite' | sudo tee -a /etc/biof3.env
sudo sed -i '/^BIOF3_P2_PG=/d' /etc/biof3.env
pm2 restart biof3-r-server --update-env

本机部署代码

./deploy.sh --push r-server/db.js r-server/db-p2-pg-shim.js
scp scripts/merge-aux-into-pg.mjs dell-direct:/opt/biof3-r-server/scripts/
AI 组学实践

让 AI 带我实战这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步带你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。