运维命令
本页整理生产和测试环境常用命令。命令默认在 server/ 目录执行;Docker 部署时可使用 docker compose exec php php think ...。
安装初始化
| 命令 | 作用 |
|---|---|
php think saas:install | 初始化 SaaS 数据库结构和基础数据 |
php think saas:install --docker --non-interactive | Docker 一键安装流程使用的非交互初始化 |
php think saas:create-platform-admin | 创建平台管理员 |
php think saas:create-platform-admin --default | 创建默认平台管理员,本地体验使用 |
运行期定时任务
生产环境建议放入 crontab:
txt
0 * * * * cd /path/to/server && php think saas:tenant-lifecycle >> /var/log/ydadmin-saas-lifecycle.log 2>&1
*/5 * * * * cd /path/to/server && php think saas:order-cleanup >> /var/log/ydadmin-saas-order-cleanup.log 2>&1| 命令 | 频率 | 作用 |
|---|---|---|
php think saas:tenant-lifecycle | 每小时 | 扫描租户到期状态,处理 grace / frozen,写每日用量快照 |
php think saas:order-cleanup | 每 5 分钟 | 取消超过过期时间的待支付订单 |
插件维护
| 命令 | 作用 |
|---|---|
php think saas:backfill-grants --dry-run | 预览从旧 plans.features 回填插件授权 |
php think saas:backfill-grants --apply | 执行插件授权回填 |
php think saas:plugin-menu-reconcile | 校准租户插件菜单,适合套餐授权或购买数据修复后执行 |
php think saas:plugin-migration-backfill | 将存量已启用插件的 migration 文件回填到插件迁移日志 |
php think saas:plugin-migration-backfill --plugin=ID | 只回填指定插件 |
插件安装、升级、卸载优先通过平台后台执行。CLI 维护命令主要用于历史数据修复和异常恢复。
移动端构建维护
| 命令 | 作用 |
|---|---|
php think saas:mobile-build-prune | 清理旧移动端构建产物并截断过大的错误日志 |
移动端构建依赖 uniapp/ 模板、插件 uniapp/ 源码、pnpm 和目标平台构建脚本。构建失败时先查看租户后台构建日志,再查看服务端日志。
队列
消息发送、操作日志、插件构建、移动端构建等异步任务依赖队列 worker:
bash
php think queue:work --queue default --tries=3Supervisor 示例:
ini
[program:ydadmin-saas-queue]
command=php think queue:work --queue default --tries=3
directory=/path/to/server
autostart=true
autorestart=true
stdout_logfile=/var/log/ydadmin-saas-queue.log
stderr_logfile=/var/log/ydadmin-saas-queue-error.logDocker 常用命令
bash
cd /path/to/ydadmin-saas/docker
docker compose ps
docker compose logs -f php
docker compose logs -f nginx
docker compose exec php php think saas:tenant-lifecycle
docker compose exec php ./vendor/bin/phpunit tests/RedLine仓库根目录也提供 Makefile:
bash
make setup
make status
make logs
make stop
make cleanmake clean 会删除数据卷,生产环境不要使用。
发布检查
发布前建议:
- 构建
platform/、tenant/、pc/前端产物。 - 执行数据库迁移。
- 跑红线测试:
./vendor/bin/phpunit tests/RedLine。 - 确认队列 worker 和 crontab 正常。
- 如果改了插件、套餐授权或菜单,执行一次
saas:plugin-menu-reconcile。
