数据库

未匹配的标注

数据库模块公开 API 以与 SQL 数据库交互。你可以按如下方式导入模块:

import Database from '@ioc:Adonis/Lucid/Database'

方法/属性

以下是数据库模块上可用的方法/属性列表。

connection

返回给定连接的查询客户端。当未定义显式连接名称时,使用默认连接。

Database.connection()

// 命名连接
Database.connection('pg')

你还可以获取特定模式的查询客户端实例。

Database.connection('pg', { mode: 'write' })

// 读模式下不允许写查询
Database.connection('pg', { mode: 'read' })

beginGlobalTransaction

开始全球事务。 开始全局事务后的所有查询都将在事务内执行。

我们建议仅在测试期间使用此方法。

await Database.beginGlobalTransaction()

// 对于命名连接
await Database.beginGlobalTransaction('pg')

commitGlobalTransaction

提交之前创建的全局事务

await Database.commitGlobalTransaction()
await Database.commitGlobalTransaction('pg')

rollbackGlobalTransaction

回滚之前创建的全局事务

await Database.rollbackGlobalTransaction()
await Database.rollbackGlobalTransaction('pg')

report

返回所有已注册连接的健康检查报告。

const report = await Database.report()

console.log(report.name)
console.log(report.health.healthy)

query

client.query 方法的别名。

Database.query()

insertQuery

client.insertQuery 方法的别名。

Database.insertQuery()

modelQuery

client.modelQuery 方法的别名。

import User from 'App/Models/User'
const query = Database.modelQuery(User)

rawQuery

client.rawQuery 方法的别名。

await Database
  .rawQuery('select * from users where id = ?', [1])

knexQuery

client.knexQuery 方法的别名。

Database.knexQuery()

knexRawQuery

client.knexRawQuery 方法的别名。

Database
  .knexRawQuery('select * from users where id = ?', [1])

ref

ref 方法允许你引用数据库列名作为值。 例如:

Database
  .from('users')
  .where('users.id', '=', Database.ref('user_logins.user_id'))

raw

raw 方法创建 RawBuilder 的实例。 此查询旨在用作另一个查询中的参考。

rawQueryraw 有什么区别?

你可以执行使用 rawQuery 方法创建的查询。 然而,使用 raw 方法创建的查询只能作为引用传递。

Database
  .from('users')
  .select('*')
  .select(
    Database
      .raw('select "ip_address" from "user_logins" where "users.id" = "user_logins.user_id" limit 1')
      .wrap('(', ')')
  )

from

获取主连接的 查询构建器 实例的快捷方法。

Database.from('users')
// 等同于
Database.connection().from('users')

table

获取主连接的 插入查询构建器 实例的快捷方法。

Database.table('users')
// 等同于
Database.connection().table('users')

transaction

client.transaction 方法的别名。

await Database.transaction()

prettyPrint

一种辅助方法,可以漂亮地打印作为 db:query 事件发出的查询日志。

import Event from '@ioc:Adonis/Core/Event'
Event.on('db:query', Database.prettyPrint)

hasHealthChecksEnabled

一个布尔值,用于了解是否为至少一个连接启用了健康检查。

console.log(Database.hasHealthChecksEnabled)

primaryConnectionName

返回在 config/database 文件中定义的默认/主连接名称。

console.log(Database.primaryConnectionName)

manager

返回对 连接管理器 的引用

console.log(Database.manager)

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/adonisjs-ref/sh...

译文地址:https://learnku.com/docs/adonisjs-ref/sh...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~