Debug nezobrazuje dotazy s Nette\Database

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

Zdravim,

po aktualizaci Nette se me prestaly zobrazovat dotazy vykonane do db.
Asi pred pul rokem David psal, ze bude.. ale pak uz nic.. nedelam neco spatne?

Díky za rady.

Zde muj config:

common:
	php:
		date.timezone: Europe/Prague
		# zlib.output_compression: yes
		# default_charset: "UTF-8"

	services:
		authenticator:
			class: \IkonisModule\MyAuth

		authorizator:
			class: \IkonisModule\Acl

		database:
			class: Nette\Database\Connection
			arguments: ['mysql:host=localhost;dbname=xxx', 'xxx', 'xxx']

		#models
		dataModel:
			class: \IkonisModule\DataModel
			arguments: ["@database"]

production < common:

development < common:
ViPEr*CZ*
Člen | 817
+
0
-

Mrkněte se do sandboxu, tam to je… ;-)

MW
Člen | 626
+
0
-

Nejak nevim, co tam presne hledat…
config a bootstrap i readme :-) jsem prolezl…

Prosim o nakopnuti s rozbehem ;)

Diky !

Editoval MW (8. 9. 2012 22:18)

David Matějka
Moderator | 6445
+
0
-

https://github.com/…/config.neon

sluzba se ted nevytvari primo do sekce services, ale do nette > database, sluzba potom bude v $container->nette->database->default

Editoval matej21 (8. 9. 2012 22:35)

MW
Člen | 626
+
0
-

Toto jsem zkousel a krome toho, ze se dotazy v baru neobjevily, tak me to hlasilo chybu „No reference found“ u nekterych dotazu…

To se dotazy pak zpracovavaji jinak? Musel bych prepsat asi radu veci…

Diky !

Editoval MW (8. 9. 2012 22:43)

David Matějka
Moderator | 6445
+
0
-

smazal jsi cache? jiny reflection si nepouzival ani u toho puvodniho configu, takze tim by to byt nemelo.. a dotazy by se mely zapisovat porad stejne

MW
Člen | 626
+
0
-

Zkusim to znovu.

Ted jsem jeste prohledaval forum.
Muze to byt taky problem v tom, ze mam db v MyIsam a v tom jsem cetl, byly nejake zmeny… proto ty hlasky s referencemi …

Kdyztam budu prepisovat.. :-(

Diky

MW
Člen | 626
+
0
-

Tak je to tak. Jakmile to udelam takto:

common:
	php:
		date.timezone: Europe/Prague
		# zlib.output_compression: yes
		# default_charset: "UTF-8"

	nette:
		database:
			dsn: 'mysql:host=localhost;dbname=xxx'
			user: xxx
			password: 'xxx'

	services:
		database: @nette.database.default

		authenticator:
			class: \IkonisModule\MyAuth

		authorizator:
			class: \IkonisModule\Acl

		#models
		dataModel:
			class: \IkonisModule\BranchesModel
			arguments: ["@database"]

Dostavam chyby „no reference found“ u dotazu typu:

$this->database->table('cars')->select('cars.*, branches.name AS branch_name');

po staru… tedy projde.

Jak toto prosim resit?

Diky !

David Matějka
Moderator | 6445
+
0
-

zkus:

common:
...
	nette:
		database:
			...parametry..
			reflection: Nette\Database\Reflection\ConventionalReflection
MW
Člen | 626
+
0
-

Dela to tedy asi debug pro db a nektery z jeho dotazu.
Toto zabralo.. znamena to, ze to vypousti hledani cizich klicu?
Ja to pochopil tak, ze debug pro db je urcen pouze pro Inno3d. Je to tak?

Nemel bych radeji prejit na InnoDB, nastavit klice a prepsat ty Selecty?

Pre prisel MyIsam rychlejsi na obyc pouziti..

Diky !

Editoval MW (9. 9. 2012 11:34)

David Matějka
Moderator | 6445
+
0
-

ty dotazy v debug panelu by se mely zobrazovat bez ohledu na vsechno (pokud je teda aktivni develop mod :) )

ConventionalReflection pouziva pripojovani tabulek podle jednoduchych pravidel, ktery je mozno zmenit – treba ze nazev sloupce s „cizim klicem“ je ve stylu tabulka_id atd.

discoveredreflection je pouzitelny jen v enginech s podporou cizich klicu (innodb..) a vyhledava to v meta udajich databaze

doporucuju innodb, na cizi klice, triggery atd. si zvyknes rychle :) a par chybejicich veci jako fulltext se necha nahradit jinak (samostatna myisam tabulka, pripadne specialni fulltextovej server – sphinx, elactic search)

MW
Člen | 626
+
0
-

Diky za vysvetleni! uz chapu.. moc me to pomohlo…

Snad jen posledni otazka..
Lze nejak toto:

$this->database->table('cars')->select('cars.*, branches.name AS branch_name');

Napsat lépe? treba pomoci ref(), proste jednoduchy JOIN nazvu z jine tabulky ?

Jeste jednou diky !

Editoval MW (9. 9. 2012 14:27)