Připojení do více mysql databází

- Glottis
 - Člen | 129
 
asi by to slo nejak takto, doufam :)
neon pro nette 2.1 a dibi
parameters:
	database1:
		driver: mysql
		host: localhost
		database: db
		username: user
		password: heslo
		charset: utf8
		profiler: true
		persistent: true
		lazy: true
	database2:
		driver: mysql
		host: localhost
		database: db
		username: user
		password: heslo
		charset: utf8
		profiler: true
		persistent: true
		lazy: true
services:
	database1:
		class: DibiConnection
		create: dibi::connect(%database1%)
		run: true
	database2:
		class: DibiConnection
		create: dibi::connect(%database2%)
		run: true
	model1: Model1(@database1)
	model2: Model1(@database2)
model1 a model2 pak budou mit ruzne db
Editoval Glottis (15. 4. 2013 9:10)

- castamir
 - Člen | 629
 
Vycházím z quickstartu
nette:
    database:
        default:
            dsn: 'mysql:host=localhost;dbname=quickstart'
            user:
            password:
        jinaDB:
            dsn: 'mysql:host=localhost;dbname=jinadatabaze'
            user:
            password:
Jelikož definuješ 2 instance Nette\Database\Connection, tak budeš muset u všech služeb, kde některou z nich budeš chtít použít, explicitně určit, kterou instanci chceš.
services:
    taskRepository: Todo\TaskRepository(@nette.database.default)
    userRepository: Todo\UserRepository(@nette.database.jinaDB)
				
- castamir
 - Člen | 629
 
Ještě dodám, že můžeš využít featury neonu a použít dědičnost. Příklad od @Glottis se s dědičností dá krásně zkrátit:
parameters:
	database1:
		driver: mysql
		host: localhost
		database: db
		username: user
		password: heslo
		charset: utf8
		profiler: true
		persistent: true
		lazy: true
	database2 < database1:
		database: db #tady muzu dat treba jen jiny nazev databaze
services:
	database1:
		class: DibiConnection
		create: dibi::connect(%database1%)
		run: true
	database2 < database1:
		create: dibi::connect(%database2%) #zmenim udaje k pripojeni oproti @database1
	model1: Model1(@database1)
	model2: Model1(@database2)
				
- vEnCa-X
 - Člen | 6
 
Zdravím.
Připojení k více MYSQL databázím mi ve verzi 2.1dev nefunguje. Ve verzi
2.0.10 je to OK.
Mám databáze:
- db1 (tabulka table1)
 - db2 (tabulka table2)
 
nette:
    database:
        default:
            dsn: 'mysql:host=127.0.0.1;dbname=db1'
            user: root
            password: root
            options:
                lazy: true
        db2:
            dsn: 'mysql:host=127.0.0.1;dbname=db2'
            user: root
            password: root
            options:
                lazy: true
services:
    - Db1(@nette.database.default)
    - Db2(@nette.database.db2)
Presenter:
    /** @var Db1 @inject */
    public $db1;
    /** @var Db2 @inject */
    public $db2;
	public function renderDefault()
	{
          $this->template->db1 = $this->db1->getAll();
          $this->template->db2 = $this->db2->getAll(); // ERROR
	}
Problém je u připojení do db2, ve kterém se dotaz pokouší vykonat na db1:
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‚db1.table2‘ doesn't exist
Dělám něco špatne, nebo je chyba v Nette 2.1dev?
Problém jsem reportoval: https://github.com/…/issues/1053