rocketslab / laravel-multitenancy-extensions
Spatie Laravel 多租户扩展包
0.3
2021-06-11 09:59 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: ^8.0
- spatie/laravel-multitenancy: ^2.1
- stancl/jobpipeline: ^1.5
Requires (Dev)
- phpunit/phpunit: ^9.0
README
本包是为与 Spatie 的 Laravel 多租户 一起使用而创建的。
安装
composer require rocketslab/laravel-multitenancy-extensions
配置
发布默认配置
php artisan vendor:publish --provider="RocketsLab\MultitenancyExtensions\MultitenancyExtensionsServiceProvider" --tag="config"
激活默认数据库到当前租户
默认情况下,多租户包在每个请求上都有一个数据库切换的任务。但是,通过在后台(当创建新租户时)执行此操作,默认 数据库没有被分配。因此,当尝试迁移表并使用初始数据填充数据库时,Laravel 找不到新的数据库。
为了解决这个问题,将 ActiveDefaultDatabase
任务添加到 multitenancy
配置文件中的任务数组列表的第一项。
//... 'switch_tenant_tasks' => [ \RocketsLab\MultitenancyExtensions\Tasks\ActivateDeafultDatabase::class, \Spatie\Multitenancy\Tasks\SwitchTenantDatabaseTask::class, // ... other tasks ], //...
创建租户数据库
配置了 spatie/laravel-tenancy
租户模型后,您可以激活自动创建数据库。为此,将 ShouldCreateDatabase
特性包含到租户模型中。
房东数据库迁移助手
本包提供了一条命令来帮助迁移到房东数据库。
php artisan landlord:migrate
默认情况下,此命令会运行 database/migrations/landlord
文件夹中的所有迁移。如果您可以修改此设置,请编辑 multitenancy-extensions
配置文件中的 landlord
配置部分。
可选地,您可以使用 --fresh
标志来删除所有表并迁移。
由 @jjsquady - Jorge Gonçalves 创建
感谢 Spatie 团队。
MIT 许可证