Я пытаюсь создать и использовать приложение с помощью Laravel 5. Предполагается, что это архитектура базы данных с несколькими арендаторами, использующая несколько баз данных. Мой работодатель требует этого для целей безопасности.
Я попытался вручную управлять основными переходами БД и миграциями Арендатора, но не смог. Поэтому я решил обратиться за помощью к конкретному пакету Laravel, который, предположительно, мне нужен.
Tenanti обеспечивает способ решения моей цели, но проблема в том, что я являюсь новичком-разработчиком, не могу полностью понять, как его использовать мое приложение.
Я правильно установил его, я полагаю, что делаю:
composer require "orchestra/tenanti=~3.0"
Добавление этих поставщиков и псевдонимов в файл конфигурационного приложения:
'providers' => [
// ...
Orchestra\Tenanti\TenantiServiceProvider::class,
Orchestra\Tenanti\CommandServiceProvider::class,
],
'aliases' => [
'Tenanti' => Orchestra\Support\Facades\Tenanti::class,
],
Наконец, опубликуем конфигурацию и настроим ее в соответствии с документацией для нескольких баз данных:
php artisan vendor:publish
return [
'drivers' => [
'user' => [
'model' => App\User::class,
'migration' => 'tenant_migrations',
'path' => database_path('tenanti/user'),
],
],
];
В этот момент я все еще расплывчатый, что делать дальше?
Мои сомнения таковы:
- Где будут созданы и сохранены файлы миграции? Я имею в виду, что в моем приложении есть два типа баз данных. Один набор файлов предназначен для основной БД, которая будет хранить всю информацию арендатора, а другие файлы будут для базы данных арендатора. Итак, как и где они будут храниться?
- Я вижу слово "драйвер" в документации, но я не уверен, какой именно драйвер.
- Как я буду обрабатывать аутентификацию для приложения? Я имею в виду, что каждый раз, когда приходит арендатор, мне нужно будет убедиться, что соединение с базой данных изменяется динамически. Как я это сделаю?
- Я попытался пройти через хранилище самого пакета и понять код внутри, но напрасно. Я не очень хорош, когда речь идет о дизайне паттеров, таких как фасады, командная шина, поставщик услуг и т.д., Поэтому я не могу понять поток пакета или понять его.
Я попытался запустить некоторые из команд artisan, которые поставляются с пакетом, например:
php artisan tenanti:install {driver}
php artisan tenanti:make {driver} {name}
Но я получаю такую ошибку:
[InvalidArgumentException] Соединение с базой данных [арендаторы] недоступны.
Где я могу найти ресурсы, чтобы понять, как это сделать?