Jak se dostat k databázi přes Cli router?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Hafran
Člen | 121
+
0
-

Zdravím,
volal jsem si v nějakém starším Nette (cca 2.1?), cliRouter cronem. A jelikož jsem potřeboval db a ta nešla přes cli injectovat, tak jsem si ji prostě vytáhnul z contextu. Šlo o jediný příkaz, takže nepotřebuji žádné krásné řešení. :)

$this->db = $this->context->getService("db");

což po upgradu na 2.3 nemůžu rozchodit. Ať dělám co dělám, tak tu service to nenajde.

Tak jsem si to chtěl zavolat prostě takhle:

$connection = new Connection($dsn, $user, $password);
$database = new Context($connection);

jenže bez autowiringu chybí contextu, cache, structure atd. a to nechci všechno tvořit ručně.

Takže prosím, jak se připojím k db přes CliRouter?

Unlink
Člen | 298
+
0
-

A máš dobré meno tej služby? Ak používaš nette database, tak by som skúsil nette.database.default

newPOPE
Člen | 648
+
0
-

alebo getByType(...). Ono ci si v CLI alebo nie to by nemalo mat vplyv na injektaz (aspon ked sa bavime o normalnej podpore a presenteroch).

Hafran
Člen | 121
+
0
-

No zkoušel jsem nette.database.default, zkoušel jsem si udělat alias přímo v services, zkoušel jsem getByType, ale o tom to úplně není. Při přístupu z webu to tu službu najde a vše v pohodě, přes Cli ji to prostě nenajde.

Unlink
Člen | 298
+
0
-

Nepoužívaš náhodou sekcie v configu?

Hafran
Člen | 121
+
0
-

2 Unlink: Aj, no to používám. A na konzoli tam musím mít asi speciální sekci, co? ;) Jak se to napíše?

Unlink
Člen | 298
+
0
-

Hm, tak tým to nebude, niečo sa mi zdalo, ale asi to nebude ono.

Ukáž boostrap.php a príslušnú časť routera

David Matějka
Moderator | 6445
+
0
-

A jakou chybu to pise?

A sekce v configu na to mohou mit vliv, pokud je pouzivas spatne (tedy treba pro zadavani udaju k databazi). CLI se totiz spousti v produkcnim rezimu

Milo
Nette Core | 1283
+
0
-

Potřebuješ vůbec CLI router? https://forum.nette.org/…nu-nette-2-2#…