Conexão
A classe de conexão é responsável por gerenciar o ciclo de vida de uma determinada conexão de banco de dados. Você pode acessar a instância de conexão usando a propriedade Database.manager.
import Database from '@ioc:Adonis/Lucid/Database'
const { connection } = Database.manager.get('primary')O nome da conexão é derivado do arquivo config/database.ts. No exemplo a seguir, primary é o nome da conexão.
{
connections: {
primary: {
client: 'pg',
connection: {
// ...
},
}
}
}Métodos/propriedades
A seguir está a lista dos métodos e propriedades disponíveis na classe de conexão. O código do usuário não interage com a instância de conexão diretamente, pois os métodos a seguir são invocados internamente.
connect
Invocar o método connect instancia uma nova instância do Knex.js. Se você estiver usando réplicas de leitura/gravação, duas instâncias do Knex.js serão criadas, uma para gravação e outra para leitura.
NOTA
O método connect é chamado automaticamente quando você executa uma nova consulta ao banco de dados.
connection.connect()disconnect
O método disconnect desconecta a conexão do driver subjacente e destrói a(s) instância(s) do Knex.
await connection.disconnect()getReport
Retorna o relatório de verificação de integridade para a conexão fornecida.
const report = await connection.getReport()pool/readPool
Referência ao objeto de pool tarnjs subjacente. A propriedade está disponível somente após o método connect ser chamado.
connection.pool.numFree()
connection.readPool.numFree()client/readClient
Referência à instância subjacente do Knex. A propriedade está disponível somente após o método connect ser chamado.
connection.client
connection.readClienthasReadWriteReplicas
Um booleano para saber se a conexão está usando réplicas de leitura e gravação ou não.
connection.hasReadWriteReplicasready
Um booleano para saber se a conexão está pronta para fazer consultas. Se não, você deve chamar o método connect.
if (!connection.ready) {
connection.connect()
}config
Referência ao objeto de configuração
connection.configname
A referência ao nome da conexão
connection.nameEventos
A seguir está a lista de eventos emitidos pela classe de conexão.
connect
Emitido quando o método connect é chamado
connection.on('connect', (self) => {
console.log(self === connection) // true
})error
Emitido quando não é possível estabelecer a conexão
connection.on('error', (error, self) => {
console.log(error)
})disconnect
Emitido quando a conexão e as instâncias do Knex foram destruídas.
connection.on('disconnect', (self) => {
console.log(self)
})disconnect`:error`
Emitido quando não é possível desconectar ou destruir as instâncias do Knex.
connection.on('disconnect:error', (error, self) => {
console.log(error)
})