【问题标题】:How to create table relationships Knex.js/express through migration?如何通过迁移创建表关系 Knex.js/express?
【发布时间】:2021-07-12 12:10:57
【问题描述】:

我有我需要为我的后端应用程序创建的所有表,但是当我尝试为关系添加外键时,它会在调用迁移时引发错误。 数据库是 postgreSQL 目标: 我想再制作 1 个表来引用将所有表链接到 1 个表的所有外键。就像这个例子一样。

exports.up = function (knex) {
  return knex.schema.createTable('Overview', (table) => {
    table.uuid('overview_id').primary()
    table
      .foreign('user_id')
      .references('user_id')
      .inTable('users')
      .onDelete('cascade')
    table
      .foreign('player_id')
      .references('player_id')
      .inTable('playerStats')
      .onDelete('cascade')
    table
      .foreign('registration_id')
      .references('registration_id')
      .inTable('registration')
      .onDelete('cascade')
    table
      .foreign('planet_id')
      .references('planet_id')
      .inTable('planetList')
      .onDelete('cascade')
    table
      .foreign('buildings_id')
      .references('buildings_id')
      .inTable('buildings')
      .onDelete('cascade')
    table
      .foreign('production_id')
      .references('production_id')
      .inTable('production')
      .onDelete('cascade')
    table
      .foreign('research_id')
      .references('research_id')
      .inTable('research')
      .onDelete('cascade')
    table
      .foreign('player_fleet_id')
      .references('player_fleet_id')
      .inTable('playerFleet')
      .onDelete('cascade')
    table
      .foreign('player_defense_id')
      .references('player_defense_id')
      .inTable('playerDefense')
      .onDelete('cascade')
  })
}

【问题讨论】:

    标签: node.js postgresql express knex.js


    【解决方案1】:
    exports.up = function (knex) {
      return knex.schema.createTable('Overview', (table) => {
        table.uuid('overview_id').primary()
        table.integer('user_id').notNullable()
        table
          .foreign('user_id')
          .references('user_id')
          .inTable('users')
          .onDelete('cascade')
        table.integer('player_id')
        table
          .foreign('player_id')
          .references('player_id')
          .inTable('playerStats')
          .onDelete('cascade')
        table.integer('registration_id')
        table
          .foreign('registration_id')
          .references('registration_id')
          .inTable('registration')
          .onDelete('cascade')
        table.integer('planet_id')
        table
          .foreign('planet_id')
          .references('planet_id')
          .inTable('planetList')
          .onDelete('cascade')
        table.integer('buildings_id')
        table
          .foreign('buildings_id')
          .references('buildings_id')
          .inTable('buildings')
          .onDelete('cascade')
        table.integer('production_id')
        table
          .foreign('production_id')
          .references('production_id')
          .inTable('production')
          .onDelete('cascade')
        table.integer('research_id')
        table
          .foreign('research_id')
          .references('research_id')
          .inTable('research')
          .onDelete('cascade')
        table.integer('player_fleet_id')
        table
          .foreign('player_fleet_id')
          .references('player_fleet_id')
          .inTable('playerFleet')
          .onDelete('cascade')
        table.integer('player_defense_id')
        table
          .foreign('player_defense_id')
          .references('player_defense_id')
          .inTable('playerDefense')
          .onDelete('cascade')
        table.integer('store_id')
        table
          .foreign('store_id')
          .references('store_id')
          .inTable('store')
          .onDelete('cascade')
      })
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 2020-04-13
      • 2018-12-30
      • 2020-08-01
      • 2015-09-21
      相关资源
      最近更新 更多