Skip to content

运维命令

本页整理生产和测试环境常用命令。命令默认在 server/ 目录执行;Docker 部署时可使用 docker compose exec php php think ...

安装初始化

命令作用
php think saas:install初始化 SaaS 数据库结构和基础数据
php think saas:install --docker --non-interactiveDocker 一键安装流程使用的非交互初始化
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=3

Supervisor 示例:

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.log

Docker 常用命令

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 clean

make clean 会删除数据卷,生产环境不要使用。

发布检查

发布前建议:

  1. 构建 platform/tenant/pc/ 前端产物。
  2. 执行数据库迁移。
  3. 跑红线测试:./vendor/bin/phpunit tests/RedLine
  4. 确认队列 worker 和 crontab 正常。
  5. 如果改了插件、套餐授权或菜单,执行一次 saas:plugin-menu-reconcile

基于 Apache-2.0 协议开源