Více databází a služba Context – možný bug
- vasam
- Člen | 26
Zdravím,
pravděpodobně jsem našel bug (když tak mě opravte, pokud je to
vlastnost ;-)).
V configu si nastavím více databází, něco ve smyslu:
database:
db1:
...
db2:
...
V aplikaci potom využívám Database\Context, takže služby nakonfiguruji v configu třeba takto:
- App\Model\Model1(@nette.database.db2.context)
Místo toho ale dostanu @nette.database.db1.context.
Konkrétně jsem to zkoušel na MySQL/MyISAM.
Je to bug, vlastnost nebo někde moje blbost?
Editoval vasam (9. 7. 2014 13:39)
- David Matějka
- Moderator | 6445
Verze nette? mne to funguje OK. A kde presne dostanes db1 misto db2? v konstruktoru toho Model1?
- saimons
- Člen | 293
To jsem tady psal pred par dny a nikdo mi neodpovedel, tak jsem to vyresil takhle: https://forum.nette.org/…m-do-dvou-db
- David Matějka
- Moderator | 6445
Divny, muzes zkusit izolovat chybu treba na sandboxu?
a podivej se prosim do vygenerovanyho kontejneru, jak se vytvari ta sluzba
Model1
a zkus si primo z kontejneru
vytahnout $container->getService('nette.database.db2.context')
- David Matějka
- Moderator | 6445
Ajo, uz to vidim. Defaultni hodnota je nazev tridy, ale kontrola probiha jen proti slovu discovered
jako hotfix uvedte k tem spojenim reflection: discovered
,
tedy:
database:
db1:
user: ...
reflection: discovered
....
- Tomáš Jacík
- Člen | 146
Mám stejný problém, ale discovered mi nepomohlo.
database:
default:
dsn: 'mysql:host=mysql;dbname=test'
user: test
password: test
altcz:
dsn: 'mysql:host=mysql;dbname=test_cz_am'
user: test
password: test
autowired: false
reflection: discovered
altsk:
dsn: 'mysql:host=mysql;dbname=test_cz_pap'
user: test
password: test
autowired: false
reflection: discovered
services:
advertiserRepository: App\Model\AdvertiserRepository( @nette.database.amcz.context )
SQLSTATE[HY000] [1044] Access denied for user 'test'@'%' to database 'test'
- Tomáš Jacík
- Člen | 146
Tak vyřešeno. Neuvědomil jsem si, že mu vadí ta db v UserManageru, měl jsem za to že se to defaultně připojuje lazy jak jsem se kdesi dočetl, což fakt nedělá. Tedy to s tím reflection: discovered jede.
- Tomáš Jacík
- Člen | 146
hrach napsal(a):
@matej21 diky za napovedu.
je to fixnuto pro v2.2@dev i v2.3@dev (tj. master).
@TomasJancik muzes prosim udelat issue,pokud ti nejede lazy connection? diky
Ona jede, jen ne v defaultu, pokud ji do confu explicitně nezadám.