Skip to content

更新日志

升级检查表

每次升级 tenancy 包都执行以下检查,具体版本的历史记录继续保留在下方:

  1. 对照新版包内 config/tenancy.php,人工合并新增配置,保留项目已有的数据库、缓存、日志、文件系统和识别模式设置。
  2. 发布并执行中央租户迁移和监控迁移:
shell
php artisan vendor:publish \
  --provider="Modules\\Tenancy\\Providers\\CatchTenantServiceProvider" \
  --tag=tenant-migrations --force

php artisan vendor:publish \
  --provider="Modules\\Tenancy\\Providers\\CatchTenantServiceProvider" \
  --tag=tenant-monitor-migrations --force

php artisan migrate --path=database/migrations/tenancy --force
php artisan migrate --path=database/migrations/monitor --force
php artisan catch:tenant:migrate
  1. 发布 Seeder 并同步租户生命周期、队列和调度权限:
shell
php artisan vendor:publish \
  --provider="Modules\\Tenancy\\Providers\\CatchTenantServiceProvider" \
  --tag=tenant-seeders --force

php artisan db:seed --class=TenancyMenusSeeder --force
  1. 发布前端 tenancy 视图并确认 public/uploads -> storage/uploads
shell
php artisan catch:tenant:install --only-view
php artisan storage:link

同步前端识别模式并重新构建管理端:

dotenv
VITE_TENANCY_IDENTIFICATION_MODE=shared_domain

该值与后端 TENANCY_IDENTIFICATION_MODE 保持一致。

  1. 重建缓存并重启队列 worker:
shell
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan queue:restart
  1. 验证 domainshared_domain 的中央登录、租户登录和普通 API 协议;验证公开上传、私有文件授权、中央和租户队列、调度同步与执行日志。

完整生产发布步骤见部署指南

共享域名多数据库(破坏性升级)

  • 新增 TENANCY_IDENTIFICATION_MODE=shared_domain
  • 新增 VITE_TENANCY_IDENTIFICATION_MODE=shared_domain,重新构建前端。
  • 租户入口使用 /#/login?tenant=<uuid>,普通 API 的租户 Header 协议固定为 X-Tenant
  • Token、缓存、数据库、日志和文件系统按租户隔离。
  • 先同步客户端、反向代理与 CORS allow-header,再在同一发布窗口发布后端和前端 tenant-view
  • 人工审查新版包内 config/tenancy.php,将新增项合并到项目配置并保留客户自定义配置。
  • 发布后依序执行 php artisan route:clearphp artisan config:clearphp artisan config:cache
  • 新版 Token 逻辑键为 auth_token:<tenant-uuid>auth_token:central(实际存储键带 CatchAdmin 缓存前缀),租户上下文存放在当前标签页的 sessionStorage;升级后用户需要重新登录。
  • 完整发布步骤见部署指南
  • 回切到 domain 模式前,为共享模式创建的租户补充 Domain 记录,并完成 DNS、TLS 证书和反向代理配置。
shell
php artisan vendor:publish \
  --provider="Modules\\Tenancy\\Providers\\CatchTenantServiceProvider" \
  --tag=tenant-view --force

php artisan route:clear
php artisan config:clear
php artisan config:cache

v0.1.7

✨ 新特性

  • 队列与调度任务监控:新增对队列和调度任务的实时监控,让您全面掌控系统后台任务的执行状态,提升了系统的可观测性。

🚀 优化与增强

  • 增强数据一致性:强化了创建租户时的数据一致性保障,确保在复杂场景下数据安全可靠。
  • 优化缓存隔离:进一步优化了租户的缓存隔离机制,有效提升了高并发环境下的系统性能与稳定性。

v0.0.2

✨ 新特性

  • 租户作业生成命令:新增了 catch:tenant:job 命令,开发者可以更便捷地为特定租户创建后台作业。

🚀 优化与增强

  • 租户识别机制升级:租户识别方式全面升级为前缀模式,简化了系统集成与管理复杂度。
  • 完善隔离机制:实现了更彻底的日志隔离与更严格的权限校验,全方位保障租户数据安全。
  • 提升上下文切换性能:深度优化了租户上下文切换逻辑,显著提高了系统的整体响应速度与处理性能。

v0.0.1

  • 完整支持租户创建与管理功能,实现多租户系统的基础架构
  • 引入灵活的租户套餐订阅机制,支持多级别服务方案
  • 精细化租户权限配置系统,确保每个租户的资源访问安全
  • 实现完全的数据库隔离机制(多库模式),保障数据安全与独立性
  • 构建租户日志隔离系统,便于独立的问题跟踪与分析
  • 集成租户上传资源隔离功能,确保存储空间的独立与安全
  • 实现租户队列隔离机制,避免任务处理相互影响
  • 引入租户缓存隔离策略,提升系统响应速度与性能
  • 支持租户调度任务隔离,确保定时任务的独立运行环境