60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
|
|
# SQL Scripts
|
||
|
|
|
||
|
|
当前项目的数据库脚本按“一个主初始化脚本 + 一组历史归档脚本”的方式整理:
|
||
|
|
|
||
|
|
- 主初始化脚本:`sql/init_full_pg17.sql`
|
||
|
|
- 历史迁移与修数脚本:`sql/archive/*.sql`
|
||
|
|
|
||
|
|
## 推荐用法
|
||
|
|
|
||
|
|
### 1. 全新初始化数据库
|
||
|
|
|
||
|
|
直接执行主脚本:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
psql -d your_database -f sql/init_full_pg17.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
这份脚本已经吸收了目前项目里所有必要的结构兼容调整,适合作为当前唯一推荐的 PostgreSQL 17 初始化入口。
|
||
|
|
|
||
|
|
### 2. 老环境排查或追溯
|
||
|
|
|
||
|
|
历史变更脚本保存在:
|
||
|
|
|
||
|
|
- `sql/archive/alter_*.sql`
|
||
|
|
- `sql/archive/fix_*.sql`
|
||
|
|
- `sql/archive/init_pg17.sql`
|
||
|
|
|
||
|
|
这些文件仅用于:
|
||
|
|
|
||
|
|
- 追溯某次字段演进
|
||
|
|
- 排查老环境与当前结构差异
|
||
|
|
- 定位某次修数逻辑来源
|
||
|
|
|
||
|
|
正常部署时,不建议按时间顺序逐个执行 `archive` 里的脚本。
|
||
|
|
|
||
|
|
## 当前目录说明
|
||
|
|
|
||
|
|
- `sql/init_full_pg17.sql`
|
||
|
|
当前项目的完整初始化脚本,也是唯一推荐执行的入口。
|
||
|
|
|
||
|
|
- `sql/archive/init_pg17.sql`
|
||
|
|
旧版本初始化快照,仅保留历史参考,不再作为正式入口。
|
||
|
|
|
||
|
|
- `sql/archive/alter_*.sql`
|
||
|
|
历史结构变更脚本。
|
||
|
|
|
||
|
|
- `sql/archive/fix_*.sql`
|
||
|
|
历史修数脚本。
|
||
|
|
|
||
|
|
## 维护约定
|
||
|
|
|
||
|
|
- 新增正式字段时,优先更新 `sql/init_full_pg17.sql`
|
||
|
|
- 若该字段来自一次线上增量变更,同时保留对应 `sql/archive/alter_*.sql`
|
||
|
|
- 若只是历史修复,不要反向拆散主初始化脚本
|
||
|
|
|
||
|
|
这样可以保证:
|
||
|
|
|
||
|
|
- 新环境只需要执行一份脚本
|
||
|
|
- 老环境仍然能追溯每次改动来源
|