Dibi – viac inštancií connection
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- sepo
- Člen | 69
Ako sa v Nette cez Dibi pripojiť na druhú (n-tú) databázu?
Aktuálne mám nastavenie:
config.neon
common:
.....
dibi:
driver: mysql
host: host.host
username: user
password: pass
database: test
charset: utf8
profiler: true
explain: true
reflection: discovered
services:
database: @dibi.connection
bootstrap.php
...
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi', new DibiNetteExtension);
};
...
potrebujem k tomu pripojiť ďalšiu DB. Dá sa to?
- Patrik Votoček
- Člen | 2221
sepo napsal(a):
Ako sa v Nette cez Dibi pripojiť na druhú (n-tú) databázu?
Aktuálne mám nastavenie:config.neon
common:
dibi2:
driver: mysql
host: host2.host
username: user
password: pass
database: test
charset: utf8
profiler: true
explain: true
reflection: discovered
services:
database2: @dibi2.connection
bootstrap.php
// ...
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi2', new DibiNetteExtension);
};
// ...
- sepo
- Člen | 69
@enumag : to je tam nedopatením
@Patrik Votoček :
bootstrap.php
...
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->register();
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi', new DibiNetteExtension);
};
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi2', new DibiNetteExtension);
};
$container = $configurator->createContainer();
....
config.neon
common:
.....
dibi:
driver: mysql
host: host.host
username: user
password: pass
database: test
dibi2:
driver: mssql
host: host2.host
username: user
password: pass
database: test2
services:
database: @dibi.connection
database2: @dibi2.connection
skončí ladenkou „Multiple services of type DibiConnection found.“
- Filip Procházka
- Moderator | 4668
Jedno z nich musí být hlavní a ostatní vedlejší. Zkus
services:
dibi2.connection:
autowired: false
- Patrik Votoček
- Člen | 2221
Tohle sem v týdnu řešil v práci a nakonec jsem musel udělat
DibiMasterConnection
a DibiSlaveConnection
a napsat si
vlastní extension která tohle pořeší.