主题
更新日志
升级检查表
每次升级 tenancy 包都执行以下检查,具体版本的历史记录继续保留在下方:
- 对照新版包内
config/tenancy.php,人工合并新增配置,保留项目已有的数据库、缓存、日志、文件系统和识别模式设置。 - 发布并执行中央租户迁移和监控迁移:
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- 发布 Seeder 并同步租户生命周期、队列和调度权限:
shell
php artisan vendor:publish \
--provider="Modules\\Tenancy\\Providers\\CatchTenantServiceProvider" \
--tag=tenant-seeders --force
php artisan db:seed --class=TenancyMenusSeeder --force- 发布前端 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 保持一致。
- 重建缓存并重启队列 worker:
shell
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan queue:restart- 验证
domain与shared_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:clear、php artisan config:clear、php 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:cachev0.1.7
✨ 新特性
- 队列与调度任务监控:新增对队列和调度任务的实时监控,让您全面掌控系统后台任务的执行状态,提升了系统的可观测性。
🚀 优化与增强
- 增强数据一致性:强化了创建租户时的数据一致性保障,确保在复杂场景下数据安全可靠。
- 优化缓存隔离:进一步优化了租户的缓存隔离机制,有效提升了高并发环境下的系统性能与稳定性。
v0.0.2
✨ 新特性
- 租户作业生成命令:新增了
catch:tenant:job命令,开发者可以更便捷地为特定租户创建后台作业。
🚀 优化与增强
- 租户识别机制升级:租户识别方式全面升级为前缀模式,简化了系统集成与管理复杂度。
- 完善隔离机制:实现了更彻底的日志隔离与更严格的权限校验,全方位保障租户数据安全。
- 提升上下文切换性能:深度优化了租户上下文切换逻辑,显著提高了系统的整体响应速度与处理性能。
v0.0.1
- 完整支持租户创建与管理功能,实现多租户系统的基础架构
- 引入灵活的租户套餐订阅机制,支持多级别服务方案
- 精细化租户权限配置系统,确保每个租户的资源访问安全
- 实现完全的数据库隔离机制(多库模式),保障数据安全与独立性
- 构建租户日志隔离系统,便于独立的问题跟踪与分析
- 集成租户上传资源隔离功能,确保存储空间的独立与安全
- 实现租户队列隔离机制,避免任务处理相互影响
- 引入租户缓存隔离策略,提升系统响应速度与性能
- 支持租户调度任务隔离,确保定时任务的独立运行环境