Код: Выделить всё
doctrine:
dbal:
connections:
default:
wrapper_class: App\Doctrine\TenantConnection
driver: pdo_mysql
host: '%env(resolve:DATABASE_HOST)%'
port: 3306
user: '%env(resolve:DATABASE_USER)%'
password: '%env(resolve:DATABASE_PASSWORD)%'
charset: UTF8MB4
Код: Выделить всё
class TenantConnection extends Connection
{
public function __construct(array $params, $driver, $config)
{
$tenantId = $_SERVER['HTTP_TENANT_ID'] ?? null;
$dbName = // get by $tenantId from json (simply)
$params['dbname'] = $dbName; // dynamic change of DB Name
try {
parent::__construct($params, $driver);
} catch(ConnectionException $e) {
}
}
}
Есть ли проблемы с Caddy/Franken на производстве? Я думаю, что весь контейнер загружается в кеш, поэтому все HTTP-запросы будут выполняться быстрее. Но как я могу изменить свой эксперимент с несколькими арендаторами, чтобы это сработало? Или это плохая практика? Я хотел бы избежать наличия нескольких бэкэндов, где будет изменено только имя dbName (из env). Спасибо за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/782 ... octrine-db
Мобильная версия