mhnassar/multi-tenant

MultiTenant 包 / 一个应用程序拥有多数据库模式

dev-master 2017-11-19 20:47 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:01:36 UTC


README

Laravel 包,用于在一个源代码中处理多数据库,依赖于子域名。适用于喜欢为不同客户重用功能的市场公司或正在构建下一个软件即服务(SaaS)的初创公司。

优点

  • 非常简单
  • 分离的数据库模式

安装

  • 在 composer.json 中添加
"mhnassar/multi-tenant": "dev-master"
  • 运行
composer update
  • 在 config/app.php 中添加
'providers' => [
       ...
       MHNassar\MultiTenant\MultiTenantServiceProvider::class,
       ],
  • 让我们将中间件添加到 Http/Kernel.php 文件中的中间件数组中
protected $middleware = [
    ......
    MHNassar\MultiTenant\Middleware\MultiTenant::class,
   ];

完成所有上述步骤后,您的包应该已成功安装。

配置多数据库的租户驱动程序

  • 在您的托管服务器上为您的域名创建一个新的子域名(例如:tenant1.example.com)
  • 创建一个与子域名相同名称的新数据库(例如:tenant1)
  • 在 config/database.php 文件中创建一个与子域名相同名称的新数据库连接
'tenant1' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => 'tenant1', //name of database 
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
  • 将 .env 文件中的 "APP_ENV" 修改为 "local"
  • 运行迁移和种子,从主文件夹运行带有子域名名称的 "Multi:migrate" 命令
php artisan Multi:migrate tenant1

现在您已完成 ... 享受吧!

待办事项列表

  • 向导安装
  • 仪表板管理租户