我正在尝试在laravel 5安装中使用orchestral/tenanti软件包来启动并运行多数据库多租户架构,但我不确定如何在安装后继续。
我已仔细按照安装说明并通过编写器安装了软件包,在config/app.php
文件中定义了服务提供程序和别名,我还提前编写了AppServiceProvider的启动方法。< / p>
现在文档中的this section对我来说很模糊。它应该是什么意思?
之后,我该如何从这里开始呢?
当我尝试像tenanti:install
这样的软件包附带的新工匠命令以及其他类似的命令时,我会一直收到错误Driver [mysql] not supported
,依此类推。我做错了什么以及如何正确设置此包以及设置包之后的去处。
在哪里创建主数据库的迁移文件?在哪里为租户数据库创建迁移文件?如何在我的代码中使用此包?
答案 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