Konfiguracija podatkovne baze
Pregled konfiguracijskih možnosti za Nette Database.
Če ne uporabljate celotnega ogrodja, ampak samo to knjižnico, preberite, kako naložiti konfiguracijo.
Ena povezava
Konfiguracija ene podatkovne povezave:
database:
# DSN, edini obvezni ključ
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Ustvari storitvi Nette\Database\Connection
in Nette\Database\Explorer
, ki si jih običajno
posredujemo z autowiringom, ali pa s sklicem na njihovo ime.
Druge nastavitve:
database:
# prikazati ploščo podatkovne baze v Tracy Bar?
debugger: ... # (bool) privzeto je true
# prikazati EXPLAIN poizvedb v Tracy Bar?
explain: ... # (bool) privzeto je true
# dovoliti autowiring za to povezavo?
autowired: ... # (bool) privzeto je true pri prvi povezavi
# konvencije tabel: discovered, static ali ime razreda
conventions: discovered # (string) privzeto je 'discovered'
options:
# povezati se s podatkovno bazo šele, ko je potrebno?
lazy: ... # (bool) privzeto je false
# PHP razred gonilnika podatkovne baze
driverClass: # (string)
# samo MySQL: nastavi sql_mode
sqlmode: # (string)
# samo MySQL: nastavi SET NAMES
charset: # (string) privzeto je 'utf8mb4'
# samo MySQL: pretvori TINYINT(1) v bool
convertBoolean: # (bool) privzeto je false
# vrača stolpce z datumom kot nespremenljive objekte (od različice 3.2.1)
newDateTime: # (bool) privzeto je false
# samo Oracle in SQLite: format za shranjevanje datuma
formatDateTime: # (string) privzeto je 'U'
V ključu options
lahko navajate druge možnosti, ki jih najdete v dokumentaciji gonilnikov PDO, kot na primer:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Več povezav
V konfiguraciji lahko definiramo tudi več podatkovnih povezav z razdelitvijo na poimenovane sekcije:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Autowiring je vklopljen samo pri storitvah iz prve sekcije. To lahko spremenite s pomočjo autowired: false
ali
autowired: true
.
Storitve DI
Te storitve se dodajo v DI vsebnik, kjer ###
predstavlja ime povezave:
Ime | Tip | Opis |
---|---|---|
database.###.connection |
Nette\Database\Connection | povezava s podatkovno bazo |
database.###.explorer |
Nette\Database\Explorer | Database Explorer |
Če definiramo samo eno povezavo, bosta imeni storitev database.default.connection
in
database.default.explorer
. Če definiramo več povezav kot v zgornjem primeru, bodo imena ustrezala sekcijam, tj.
database.main.connection
, database.main.explorer
in naprej database.another.connection
ter
database.another.explorer
.
Ne-autowirane storitve posredujemo eksplicitno s sklicem na njihovo ime:
services:
- UserFacade(@database.another.connection)