代码更新了,为什么文章还是旧的?
一次更新,可能涉及三个地方
本站的页面代码在 Git 中,运行文件打进容器镜像,作品和笔记则保存在 SQLite 数据库里。它们的更新方式不同。git pull 拉到了新文案文件,并不意味着数据库里的文章已经被替换。
JSON 是整理稿,数据库负责展示
backend/content/portfolio.json 保存一份可以随代码管理的内容。导入脚本先校验字段,再按 slug 更新已有作品和笔记。slug 没变,页面地址就可以继续沿用。
新笔记会在导入时发布;已有笔记保留原来的发布状态。其他没有出现在整理稿里的记录不会被删除。
镜像里还有一份文件
Dockerfile 会把内容文件复制进镜像。只更新服务器目录,容器里的那份仍可能是旧的。可以重新构建镜像,也可以在一次性的导入容器中把更新后的内容目录挂载进去。
后台编辑和文件修改怎么配合
后台编辑直接修改数据库。如果之后又导入旧 JSON,同一条记录的文案会被覆盖。因此在做批量整理前,要把后台的新编辑合回文件,或者先保留一份导出。
导入脚本会在写入前备份内容。这个备份提供回看依据,但它不等于已经自动解决了两份文案之间的冲突。