Configuración de la base de datos
Visión general de las opciones de configuración de la Base de Datos Nette.
Si no está utilizando todo el framework, sino sólo esta librería, lea cómo cargar la configuración.
Conexión única
Configurar una única conexión a la base de datos:
database:
# DSN, only mandatory key
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Crea servicios del tipo Nette\Database\Connection
y también Nette\Database\Explorer
para la capa Database Explorer. La conexión a la base de datos se suele pasar por autocableado; si no es posible, utiliza los nombres de
servicio @database.default.connection
resp. @database.default.explorer
.
Otros ajustes:
database:
# shows database panel in Tracy Bar?
debugger: ... # (bool) defaults to true
# shows query EXPLAIN in Tracy Bar?
explain: ... # (bool) defaults to true
# to enable autowiring for this connection?
autowired: ... # (bool) defaults to true for first connection
# table conventions: discovered, static, or class name
conventions: discovered # (string) defaults to 'discovered'
options:
# to connect to the database only when needed?
lazy: ... # (bool) defaults to false
# PHP database driver class
driverClass: # (string)
# only MySQL: sets sql_mode
sqlmode: # (string)
# only MySQL: sets SET NAMES
charset: # (string) defaults to 'utf8mb4' ('utf8' before v5.5.3)
# only Oracle and SQLite: date format
formatDateTime: # (string) defaults to 'U'
La clave options
puede contener otras opciones que se pueden encontrar en la documentación del controlador PDO, tales como:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Conexiones Múltiples
En la configuración podemos definir más conexiones a bases de datos dividiéndolas en secciones con nombre:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Cada conexión definida crea servicios que incluyen el nombre de la sección en su nombre, es decir
@database.main.connection
& @database.main.explorer
y además
@database.another.connection
& @database.another.explorer
.
El autocableado sólo está activado para los servicios de la primera sección. Esto puede cambiarse con
autowired: false
o autowired: true
. Los servicios no autocableados se pasan por nombre:
services:
- UserFacade(@database.another.connection)