orchestral / tenanti驱动程序不支持错误?

时间:2015-10-08 08:38:23

标签: php laravel laravel-5 multi-tenant

我正在尝试在laravel 5安装中使用orchestral/tenanti软件包来启动并运行多数据库多租户架构,但我不确定如何在安装后继续。

我已仔细按照安装说明并通过编写器安装了软件包,在config/app.php文件中定义了服务提供程序和别名,我还提前编写了AppServiceProvider的启动方法。< / p>

现在文档中的this section对我来说很模糊。它应该是什么意思?

之后,我该如何从这里开始呢? 当我尝试像tenanti:install这样的软件包附带的新工匠命令以及其他类似的命令时,我会一直收到错误Driver [mysql] not supported,依此类推。我做错了什么以及如何正确设置此包以及设置包之后的去处。

在哪里创建主数据库的迁移文件?在哪里为租户数据库创建迁移文件?如何在我的代码中使用此包?

1 个答案:

答案 0 :(得分:2)

此处的驱动程序描述了租户的唯一标识符,租户可以基于公司,团队,站点等。您甚至可以在单个应用程序中拥有多个驱动程序。

因此,为了描述驱动程序,您必须决定如何构建应用程序,假设您确定用户可以拥有多个站点,并且每个站点都拥有自己的租户数据库。

'drivers' => [
    'site' => [
        'model' => App\Site::class, \\ The eloquent model for `sites` table.
        'migration' => 'tenant_migrations',
        'path' => database_path('tenanti/site'),
    ]
],

现在假设您已创建App\Site模型,并按照自述文件中的描述创建观察者。

您可以使用php artisan tenanti:make site create_posts_table创建新的迁移架构。此命令现在将在database/tenant/site/中创建新的迁移模式。

完成迁移后,通过Eloquent创建记录,或手动运行php artisan tenanti:migrate site

多数据库租户问题

很容易使您的数据库连接在默认租户和当前租户之间进行交换(使用迁移等),但是当我们想要从命令行运行迁移时,我们不能在连接之间动态交换。 ; t。知道这些信息(控制台不使用中间件)。

要解决此问题,您需要设置Database Connection Resolver