【问题标题】:AdonisJs migrations solution for many to manyAdonisJs 多对多迁移解决方案
【发布时间】:2018-06-13 12:58:26
【问题描述】:

我想知道如何通过如下图所示的迁移来解决多对多的解决方案: DB relation diagram

u_id_user 是来自 User 表的 FK

u_g_id 是唯一且自动递增的

g_id_group 是来自 Group 的 FK

代码示例:

class UserGroupsSchema extends Schema {
  up () {
    this.create('user_groups', (table) => {
      table.increments()
      table.integer('u_id_user')
      table.integer("g_id_group")
      table.timestamps()
    })
  }

另一个问题是,如果我运行我的迁移,它会创建类型为 MyISAM 的表,而我无法与这种类型建立关系。那么如何将默认类型更改为 InnoDB?

【问题讨论】:

  • 根据经验,混合您的问题并不好,您也可以手动将存储引擎更改为 InnoDB,因为这取决于您的数据库配置。我还没有从阿多尼斯那里找到这样做的方法

标签: node.js database types migration adonis.js


【解决方案1】:

从 adonis.js documentation 你需要像这样定义你的模型:

const Model = use('Model')

class User extends Model {
  groups () {
    return this.belongsToMany('App/Models/Group')
  }
}

module.exports = User

之后可以这样查询日期:

const user = await User.find(1)

const groups = await user
  .groups()
  .wherePivot('user_id', '=', user.id)
  .fetch()

我还没有测试过代码,但这应该会让你走上正轨

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 2021-08-31
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多