Я разрабатываю Multi Tenant с Laravel v5.7, и я успешно отправляю электронные письма в очереди, поскольку в моих моделях определено свойство 'connection'.
Но при попытке отправить, например,сообщение электронной почты, в котором используется класс Jobs, тот же отказывает и сообщает, что таблица модели не существует.
Из какой ошибки, записанной в таблице failed_jobs, даже с определенным свойством connection, она появляетсячто Job, тем не менее, пытается подключиться к основной базе данных, а не к указанной базе данных свойства.
Есть ли способ указать в Job, какую базу данных использовать, поскольку об этом сообщается в модели?
database.php
'connections' => [
'others' => ['...']
'TENANT001' => [
'driver' => 'mysql',
'database' => env('TENANT001_DATABASE', ''),
'host' => env('TENANT001_HOSTNAME', ''),
'port' => env('DB_PORT', '3306'),
'username' => env('TENANT001_USERNAME', 'forge'),
'password' => env('TENANT001_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
],
Пример модели
class Template extends Model
{
/**
* The database name used by the model.
*
* @var string
*/
protected $connection = 'TENANT001';
}
failed_jobs
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'main_database.templates' doesn't exist in /www/samba/laravel.local/vendor/laravel/framework/src/Illuminate/Database/Connection.php:326