feat(部署): 新增 deployment/ 内外网两套按侧部署包
按 demo/ 的写法把交付包改成「角色由目录决定」:iw/ 拷内网机、ow/ 拷外网机, 各自含镜像 tar、SQL、配置与 install.sh,install.sh 不再收 iw/ow 参数。 前端不再打进镜像,改为静态包放在 <侧>/web/ 只读挂进 nginx:1.27-alpine, 现场临时改页面直接替换文件 + restart web 即可。数据仍全部挂宿主机, 子目录命名与 deploy/offline 一致(pgdata/redis/mq/upload/logs/gate), 默认根改为包内 ./volumes,放数据盘只改 .env 的 SFILE_DATA_ROOT。 后端镜像 sfile-app:1.0.1 含传输优化那一批(实测组包 11.4×、解包 9.9×)。 出包脚本 deployment/scripts/build-package.sh 负责 jar→镜像→前端双包→sql→tar→VERSION。
This commit is contained in:
42
deployment/ow/sql/README.md
Normal file
42
deployment/ow/sql/README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
建表与初始数据脚本已随包放好,文件名前缀决定执行顺序(先建表后灌数据):
|
||||
|
||||
| 文件 | 来源 | 说明 |
|
||||
|---|---|---|
|
||||
| `01-init-table.sql` | `backend/db/init-table-postgres-full.sql` | 全量 DDL,含 `x_file_security` 安全检测表与 `idx_file_record_md5_code` 索引 |
|
||||
| `02-init-data.sql` | `backend/db/init-data.sql` | admin 账号、机构、平台编码(`system.code=1` 要与此一致) |
|
||||
|
||||
出包时用 `deployment/scripts/build-package.sh` 从仓库重新覆盖这两份,别手改副本。
|
||||
|
||||
只有 `POSTGRES_*` 指向的库为空时,PostgreSQL 官方镜像才会执行 `docker-entrypoint-initdb.d`;
|
||||
数据目录已有数据时会跳过 —— 想重建就把 `volumes/pgdata` 一起清掉再 `up`。
|
||||
|
||||
## upgrade/ —— 已上线老库的增量脚本(新装不用跑)
|
||||
|
||||
| 文件 | 作用 |
|
||||
|---|---|
|
||||
| `upgrade-20260914-upload-config.sql` | 新增 `x_upload_config`(机构上传后缀白名单/大小上限/开关) |
|
||||
| `upgrade-20260915-release.sql` | 与上一份同一件事(上线汇总版),**两者跑其一即可** |
|
||||
| `upgrade-20261101-meshsafe-file-security.sql` | 新增 `x_file_security` 文件安全检测表与字段 |
|
||||
| `upgrade-20261103-transfer-perf.sql` | 给 `xs_file_record.md5_code` 补索引(解包时按 MD5 去重查询,缺索引就是每文件一次全表扫描) |
|
||||
|
||||
客户如果从 2026-09 之前的老库升上来,本包(PostgreSQL)真正缺的只有三个对象:
|
||||
`x_upload_config`、`x_file_security`、`idx_file_record_md5_code`。
|
||||
这三项在 `01-init-table.sql` 里都已是 PostgreSQL 写法,老库升级建议直接照它补,别整份管道进 psql:
|
||||
|
||||
```bash
|
||||
# 先看缺不缺
|
||||
docker exec -i sfile-iw-pg psql -U sfile -d s_file -c \
|
||||
"\dt x_upload_config" -c "\dt x_file_security" -c "\di idx_file_record_md5_code"
|
||||
|
||||
# 只补 md5 索引(这份脚本带「-- 2. PostgreSQL」分节标题,可以截出来跑)
|
||||
awk '/^-- 2\. PostgreSQL/{f=1} f' sql/upgrade/upgrade-20261103-transfer-perf.sql \
|
||||
| docker exec -i sfile-iw-pg psql -U sfile -d s_file
|
||||
```
|
||||
|
||||
> 注意:这 4 份历史增量脚本是**达梦/MySQL 优先**写的,`upgrade-20260915-release.sql` 的 PostgreSQL 段整段是注释掉的,
|
||||
> 只有 `upgrade-20261101`、`upgrade-20261103` 两份带可执行的「第 2 节 PostgreSQL」。别照着 MySQL 段硬跑。
|
||||
|
||||
这两份带可执行第 2 节的脚本都是「第 1 节 MySQL/达梦、第 2 节 PostgreSQL」双库混排,**只能跑第 2 节**,
|
||||
整份管道进去会先执行 MySQL 那节。它们不会自动执行,要人工触发(容器名内网机 `sfile-iw-pg` / 外网机 `sfile-ow-pg`)。
|
||||
|
||||
数据量大时建索引会锁写,放到业务低峰执行;不能停写就用脚本里注明的 `CONCURRENTLY` 写法。
|
||||
Reference in New Issue
Block a user