Конфигуриране на базата данни
Преглед на опциите за конфигуриране на базата данни Nette.
Ако не използвате цялата рамка, а само тази библиотека, прочетете Как да изтеглите конфигурационния файл.
Една връзка
Създайте единична връзка към базата данни:
database:
# DSN, един задължителен ключ.
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Той създава услуги като Nette\Database\Connection
, и Nette\Database\Explorer
за ниво Database Explorer. Връзката с базата
данни обикновено се свързва автоматично, но ако това не е възможно,
използвайте имената на услугите @database.default.connection
и
@database.default.context
.
Други настройки:
database:
# показва панела База данни в лентата Tracy Bar
debugger: ... # (bool) по подразбиране е true
# извежда заявка EXPLAIN в лентата на Tracy
explain: ... # (bool) по подразбиране е true
# разрешаване на автоматичното свързване за тази връзка
autowired: ... # (bool) по подразбиране е true за първата връзка
# конвенции за таблици: име на открит, статичен или клас
conventions: discovered # (string) 'discovered' по подразбиране
options:
# свързване с базата данни само при необходимост?
lazy: ... # (bool) по подразбиране е false
# Клас на PHP драйвера за бази данни
driverClass: # (string)
# само за MySQL: # задава sql_mode
sqlmode: # (string)
# само за MySQL: set SET NAMES
charset: # (string) по подразбиране е 'utf8mb4' ('utf8' преди v5.5.3)
# само за Oracle и SQLite: formatDate
formatDateTime: # (string) по подразбиране е 'U'
Ключът options
може да съдържа и други опции, които можете да
намерите в документацията на PDO
драйвера, напр:
база данных:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Множество връзки
В конфигурацията можем да дефинираме повече връзки към базата данни, като ги разделим на именувани секции:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Всяка дефинирана връзка създава услуги, включващи името на раздела в
името си, т.е. @database.main.connection
& @database.main.context
и по-нататък
@database.another.connection
& @database.another.context
.
Автоматичното свързване е разрешено само за услугите от първия
раздел. Това може да се промени с помощта на autowired: false
или
autowired: true
. Неавтоматичните услуги се предават по име:
services:
- UserFacade(@database.another.connection)