Konfigurace databáze

Přehled konfiguračních voleb pro Nette Database.

Pokud nepoužívate celý framework, ale jen tuto knihovnu, přečtěte si, jak konfiguraci načíst.

Jedno spojení

Konfigurace jednoho databázového spojení:

database:	# DSN, jediný povinný klíč	dsn: "sqlite:%appDir%/Model/demo.db"	user: ...	password: ... 

Vytvoří služby Nette\Database\Connection a Nette\Database\Explorer, které si obvykle předáváme autowiringem, případně odkazem na jejich název.

Další nastavení:

database:	# zobrazit database panel v Tracy Bar?	debugger: ... # (bool) výchozí je true	# zobrazit EXPLAIN dotazů v Tracy Bar?	explain: ... # (bool) výchozí je true	# povolit autowiring pro toto spojení?	autowired: ... # (bool) výchozí je true u prvního připojení	# konvence tabulek: discovered, static nebo jméno třídy	conventions: discovered # (string) výchozí je 'discovered'	options:	# připojovat se k databázi teprve když je potřeba?	lazy: ... # (bool) výchozí je false	# PHP třída ovladače databáze	driverClass: # (string)	# pouze MySQL: nastaví sql_mode	sqlmode: # (string)	# pouze MySQL: nastaví SET NAMES	charset: # (string) výchozí je 'utf8mb4'	# pouze MySQL: převádí TINYINT(1) na bool	convertBoolean: # (bool) výchozí je false	# vrací sloupce s datem jako immutable objekty (od verze 3.2.1)	newDateTime: # (bool) výchozí je false	# pouze Oracle a SQLite: formát pro ukládání data	formatDateTime: # (string) výchozí je 'U' 

V klíči options lze uvádět další volby, které najdete v dokumentaci ovladačů PDO, jako například:

database:	options:	PDO::MYSQL_ATTR_COMPRESS: true 

Více spojení

V konfiguraci můžeme definovat i více databázových spojení rozdělením do pojmenovaných sekcí:

database:	main:	dsn: 'mysql:host=127.0.0.1;dbname=test'	user: root	password: password	another:	dsn: 'sqlite::memory:' 

Autowiring je zapnutý jen u služeb z první sekce. Lze to změnit pomocí autowired: false nebo autowired: true.

Služby DI

Tyto služby se přidávají do DI kontejneru, kde ### představuje název spojení:

Název Typ Popis
database.###.connection Nette\Database\Connection spojení s databází
database.###.explorer Nette\Database\Explorer Database Explorer

Pokud definujeme jen jedno spojení, názvy služeb budou database.default.connection a database.default.explorer. Pokud definujeme více spojení jako v příkladu výše, názvy budou odpovídat sekcím, tj. database.main.connection, database.main.explorer a dále database.another.connection a database.another.explorer.

Neautowirované služby předáváme explicitně odkazem na jejich název:

services:	- UserFacade(@database.another.connection) 
verze: 4.0 3.x 2.x