AdonisJs迁移解决方案适用于多对多

时间:2018-06-13 12:58:27

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

我想知道如何通过此图中的迁移来解决多对多的解决方案: 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?

1 个答案:

答案 0 :(得分:0)

在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()

我尚未测试代码,但这应该使您走上正确的轨道