Configuração do banco de dados
Visão geral das opções de configuração para o banco de dados Nette.
Se você não estiver usando toda a estrutura, mas apenas esta biblioteca, leia como carregar a configuração.
Conexão única
Configurar uma única conexão de banco de dados:
database:
# DSN, somente chave obrigatória
dsn: "sqlite:%appDir%/Modelo/demo.db"
user: ...
password: ...
Ela cria serviços do tipo Nette\Database\Connection
e também Nette\Database\Explorer
para a camada
Database Explorer. A conexão de banco de dados é geralmente passada
por autowiring, se isso não for possível, use os nomes
dos serviços @database.default.connection
resp. @database.default.explorer
.
Outras configurações:
database:
# mostra painel de banco de dados em Tracy Bar?
debugger: ... # (bool) por omissão
# mostra consulta EXPLAIN em Tracy Bar?
explain: ... # (bool) por omissão
# para habilitar a fiação automática para esta conexão?
autowired: ... # (bool) por omissão para a primeira conexão
# convenções de tabela: descoberta, estática, ou nome de classe
conventions: descoberto # (string) padrão para "descoberto
options:
# para conectar ao banco de dados somente quando necessário?
lazy: ... # (bool) padrão a falso
# classe de driver de banco de dados PHP
driverClass: # (string)
# somente MySQL: sets sql_mode
sqlmode: # (string)
# somente MySQL: define o SET NAMES
charset: # (string) padrão para 'utf8mb4' ('utf8' antes da v5.5.3)
# somente Oracle e SQLite: formato de data
formatDateTime: # (string) padrão para 'U'
A chave options
pode conter outras opções que podem ser encontradas na documentação do motorista da DOP, como por exemplo:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Conexões múltiplas
Na configuração, podemos definir mais conexões de banco de dados dividindo-as em seções nomeadas:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Cada conexão definida cria serviços que incluem o nome da seção em seu nome, ou seja,
@database.main.connection
& @database.main.explorer
e ainda
@database.another.connection
& @database.another.explorer
.
O cabeamento automático é habilitado somente para serviços da primeira seção. Isto pode ser alterado com
autowired: false
ou autowired: true
. Os serviços sem fio são passados pelo nome:
services:
- UserFacade(@database.another.connection)