You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AdonisJS 5 模型如何指定不同数据库连接 无需使用Database.manager

AdonisJS v5 模型层直接指定数据库连接方案

可以直接在Model层绑定指定数据库连接,无需每次通过Database.manager手动切换,操作步骤如下:

前置准备

  • 先在config/database.ts中完成所有需要用到的多数据库连接配置,每个连接对应唯一的连接名称,比如默认pg、第二个业务库mysql_biz、第三方同步库mongo_sync等

模型固定绑定连接

直接在对应Model类中定义静态connection属性,属性值为你在配置中定义的对应连接名即可,示例代码:

import { DateTime } from 'luxon'
import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'

export default class Order extends BaseModel {
  // 绑定该模型专属的数据库连接,后续所有该模型的默认操作都走这个连接
  public static connection = 'mysql_biz'

  @column({ isPrimary: true })
  public id: number

  @column()
  public orderNo: string

  @column.dateTime({ autoCreate: true })
  public createdAt: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  public updatedAt: DateTime
}

额外说明

  • 模型静态属性定义的连接是全局默认绑定,所有常规CURD、关联查询都会自动走对应连接,无需额外手动指定
  • 如果有临时切换连接的需求,可以在查询时调用模型的connection方法手动指定,该临时指定优先级高于模型静态属性:
    // 临时切到mongo_sync连接查询订单数据
    const order = await Order.connection('mongo_sync').query().where('order_no', 'xxx').first()
    
  • 关联查询场景下,关联的模型默认走自身配置的连接,不会继承主查询模型的连接,如需临时统一连接,需要给每个关联模型单独指定

内容的提问来源于stack exchange,提问作者Felix gani harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:00:05