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: ...
Cria os serviços Nette\Database\Connection
e Nette\Database\Explorer
, que geralmente são
transmitidos por autoconfiguração ou por referência ao
seu nome.
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'
# somente MySQL: converte TINYINT(1) em bool
convertBoolean: # (bool) tem como padrão false
# retorna colunas de data como objetos imutáveis (desde a versão 3.2.1)
newDateTime: # (bool) tem como padrão false
# 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:'
O autowiring é ativado somente para serviços da primeira seção. Isso pode ser alterado usando
autowired: false
ou autowired: true
.
Serviços DI
Esses serviços são adicionados ao contêiner DI, onde ###
representa o nome da conexão:
Nome | Tipo | Descrição |
---|---|---|
database.###.connection |
Nette\Database\Connection | conexão de banco de dados |
database.###.explorer |
Nette\Database\Explorer | Database Explorer |
Se definirmos apenas uma conexão, os nomes dos serviços serão database.default.connection
e
database.default.explorer
. Se definirmos várias conexões, como no exemplo acima, os nomes corresponderão às
seções, ou seja, database.main.connection
, database.main.explorer
e, em seguida,
database.another.connection
e database.another.explorer
.
Passamos os serviços não autenticados explicitamente, referindo-nos a seus nomes:
services:
- UserFacade(@database.another.connection)