你可能会说:
- “用户注册的账号存在哪里?”
- “AI 给我接了个 SQLite,上线以后数据会不会丢?”
它是什么
程序运行时的数据放在内存里,进程一重启就没了。需要长期保存的东西,要写进数据库。常见的有 Postgres、MySQL 这类独立运行的数据库服务,也有 SQLite 这种直接存成一个文件的轻量数据库。
数据库放在哪很重要。存成文件的 SQLite 用在自己电脑上很方便,可很多托管平台的容器每次部署都会换一台新的,文件跟着就没了;这时要用平台提供的数据库服务,或者挂载一块持久的磁盘。
数据库通常只让后端访问:连接地址和密码放在后端的环境变量里,前端不直接连。数据库文件也不该提交进代码仓库。
打个比方
像餐厅的仓库和账本:后厨做菜要从这里取原料、在这里记账。厨师换了班,仓库里的东西和账本上的数不会跟着消失。
在这个网站里
这个网站没有数据库:文章和课程都是仓库里的文件,构建时直接变成网页。兄弟项目 E2E Review 用的是 Railway 上的 Postgres,存账号、导师对话、学习进度和用量日志五张表;它早期用过 SQLite,仓库里至今还留着两个数据库临时文件(第 9 课)。
容易搞混的地方
常见误解
数据存在服务器上就不会丢
正确理解
要看存在哪:容器里的文件可能随下一次部署消失,只有真正的数据库服务或持久磁盘才靠得住。还要有备份。
你可以这样告诉 AI
复制下面这段,贴给你的 AI
这个项目有哪些数据需要长期保存?分别存在哪里、重新部署或重启后会不会丢?数据库的连接信息放在哪,有没有备份?
接下来去哪
先知道
- 后端——跑在服务器上、访客看不到的那部分程序:处理登录、读写数据、调用需要保密的接口。
接着看
- 接口——程序和程序之间约定好的说话方式:往哪个地址、用什么格式问,对方就按什么格式答。
在这些课里出现