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.readClient
hasReadWriteReplicas
Um booleano para saber se a conexão está usando réplicas de leitura e gravação ou não.
connection.hasReadWriteReplicas
ready
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.config
name
A referência ao nome da conexão
connection.name
Eventos
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)
})