feat: prepare CMS pages for deployment
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
# 本地数据库导线上部署文档
|
||||
|
||||
这份文档用于把当前本地 Payload/Next.js 站点完整搬到线上:代码、PostgreSQL 数据库、`media/` 图片库、`files/` 下载文件必须来自同一次导出。
|
||||
这份文档用于把当前本地 Payload/Next.js 站点完整搬到线上:代码、PostgreSQL 数据库、`media/` 图片库、`files/` 下载文件、`videos/` 视频文件必须来自同一次导出。
|
||||
|
||||
## 1. 上线前原则
|
||||
|
||||
- 线上只使用迁移,不使用 schema push。
|
||||
- 线上启动不自动跑迁移,迁移必须作为单独发布步骤执行。
|
||||
- 本地导出的数据库和 `media/`、`files/` 目录必须成套,不要混用不同时间点的文件。
|
||||
- 导入线上后不要再跑 seed 脚本,seed/backfill 只应该在本地确认好,再随数据库 dump 一起带上去。
|
||||
- 本地导出的数据库和 `media/`、`files/`、`videos/` 目录必须成套,不要混用不同时间点的文件。
|
||||
- 导入线上后不要再跑 seed 脚本,seed/backfill 只应该在本地确认好,再随数据库 dump 一起带上去。当前 seed 默认会保护已有全局内容;只有显式加 `--force` 才会覆盖后台已有配置。
|
||||
- 如果启动或迁移时出现删除旧表、schema push、交互确认提示,先停止,不要继续确认。
|
||||
|
||||
## 2. 线上环境变量
|
||||
@@ -80,7 +80,7 @@ pg_dump \
|
||||
--file="$EXPORT_DIR/eversolo.payload.dump" \
|
||||
"$DATABASE_URI"
|
||||
|
||||
tar -czf "$EXPORT_DIR/eversolo.uploads.tgz" media files
|
||||
tar -czf "$EXPORT_DIR/eversolo.uploads.tgz" media files videos
|
||||
|
||||
shasum -a 256 "$EXPORT_DIR/eversolo.payload.dump" "$EXPORT_DIR/eversolo.uploads.tgz" \
|
||||
> "$EXPORT_DIR/SHA256SUMS.txt"
|
||||
@@ -160,6 +160,7 @@ tar -xzf /srv/eversolo-release/eversolo.uploads.tgz -C /srv/eversolo-app/
|
||||
```bash
|
||||
rsync -a --delete /srv/eversolo-app/media/ /srv/eversolo-uploads/media/
|
||||
rsync -a --delete /srv/eversolo-app/files/ /srv/eversolo-uploads/files/
|
||||
rsync -a --delete /srv/eversolo-app/videos/ /srv/eversolo-uploads/videos/
|
||||
```
|
||||
|
||||
确认应用运行时能从项目根目录或挂载目录访问:
|
||||
@@ -167,9 +168,10 @@ rsync -a --delete /srv/eversolo-app/files/ /srv/eversolo-uploads/files/
|
||||
```text
|
||||
media/
|
||||
files/
|
||||
videos/
|
||||
```
|
||||
|
||||
数据库里 media/files 记录只保存文件名和元数据,文件本体必须在对应目录里。
|
||||
数据库里 media/files/videos 记录只保存文件名和元数据,文件本体必须在对应目录里。
|
||||
|
||||
## 7. 构建和启动
|
||||
|
||||
@@ -204,7 +206,7 @@ npm run smoke -- "$NEXT_PUBLIC_SITE_URL"
|
||||
/en/reviews?tab=reviews
|
||||
/en/support
|
||||
/en/support/tutorial
|
||||
/en/dealers
|
||||
/en/where-to-buy
|
||||
/admin
|
||||
/admin/login
|
||||
```
|
||||
@@ -226,6 +228,6 @@ npm run smoke -- "$NEXT_PUBLIC_SITE_URL"
|
||||
|
||||
- 不要在线上设置 `PAYLOAD_DB_PUSH=true`。
|
||||
- 不要在线上用 `PAYLOAD_MIGRATING=true` 当常规启动方式。
|
||||
- 不要把数据库 dump 和不同时间点的 `media/`、`files/` 混用。
|
||||
- 不要导入线上后再跑 `npm run seed:import` 覆盖编辑内容。
|
||||
- 不要把数据库 dump 和不同时间点的 `media/`、`files/`、`videos/` 混用。
|
||||
- 不要导入线上后再跑 `npm run seed:import -- --force` 覆盖编辑内容;普通 seed 也只建议在本地验证,不作为线上日常命令。
|
||||
- 不要在生产已经跑过某个迁移后修改同名迁移文件;需要新建 forward migration。
|
||||
|
||||
Reference in New Issue
Block a user