Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- doctrine:
- dbal:
- default_connection: default
- connections:
- default:
- driver: pdo_mysql
- host: "%env(DATABASE_HOST)%"
- dbname: "db1"
- user: "%env(DATABASE_USER)%"
- password: "%env(DATABASE_PASS)%"
- charset: UTF8
- ds:
- driver: pdo_mysql
- host: "%env(DS_DATABASE_HOST)%"
- dbname: "db2"
- user: "%env(DS_DATABASE_USER)%"
- password: "%env(DS_DATABASE_PASS)%"
- slaves:
- slave1:
- host: "%env(DS_DATABASE_SLAVE1_HOST)%"
- user: "%env(DS_DATABASE_USER)%"
- password: "%env(DS_DATABASE_PASS)%"
- dbname: "db2"
- slave2:
- host: "%env(DS_DATABASE_SLAVE2_HOST)%"
- user: "%env(DS_DATABASE_USER)%"
- password: "%env(DS_DATABASE_PASS)%"
- dbname: "db2"
- orm:
- default_entity_manager: default
- entity_managers:
- default:
- connection: default
- mappings:
- Main:
- is_bundle: false
- type: annotation
- dir: '%kernel.project_dir%/src/Entity/Main'
- prefix: 'AppEntityMain'
- alias: Main
- ds:
- connection: ds
- # Entity managers
- AppServiceDatabaseMainEntityManager:
- arguments:
- $wrapped: '@doctrine.orm.default_entity_manager'
- AppServiceDatabaseDSEntityManager:
- arguments:
- $wrapped: '@doctrine.orm.ds_entity_manager'
- $result = $this->em->getConnection()->prepare($sql);
- $result->execute($args);
- ds:
- driver: pdo_mysql
- host: "%env(DS_DATABASE_HOST)%"
- dbname: "db2"
- user: "%env(DS_DATABASE_USER)%"
- password: "%env(DS_DATABASE_PASS)%"
- wrapper_class: "%env(DS_DATABASE_PASS)%"
- slaves: AppServiceDatabaseDSWrapper
- slave1: ...
- # DBAL connections
- AppServiceDatabaseDSWrapper: '@doctrine.dbal.ds_connection'
- class DSWrapper extends MasterSlaveConnection
- {
- public function prepareSlave($statement)
- {
- $this->connect('slave');
- try {
- $stmt = new Statement($statement, $this);
- } catch (Exception $ex) {
- throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $statement);
- }
- $stmt->setFetchMode($this->defaultFetchMode);
- return $stmt;
- }
- public function querySlave()
- {
- $this->connect('slave');
- $args = func_get_args();
- $logger = $this->getConfiguration()->getSQLLogger();
- if ($logger) {
- $logger->startQuery($args[0]);
- }
- $statement = $this->_conn->query(...$args);
- if ($logger) {
- $logger->stopQuery();
- }
- return $statement;
- }
- }
Add Comment
Please, Sign In to add comment