使用sequelize复制外键列

奥里亚伊

我有一个使用sequelize的节点项目,并且有以下两个表

"use strict";

module.exports = function(sequelize, DataTypes) {
  var asset = sequelize.define("asset", {
    description   : DataTypes.STRING,
    maker         : DataTypes.STRING,
    model         : DataTypes.STRING,
    serialNumber  : DataTypes.STRING,
    barcode       : DataTypes.STRING,
    account       : DataTypes.INTEGER,
    usefulLife    : DataTypes.INTEGER,
    downtimeCosts : DataTypes.FLOAT,
    purchasePrice : DataTypes.FLOAT
  }, {
    classMethods: {
      associate: function(models) {
        /*Un estado es de muchas categorias, y no se puede borrar si tiene un activo asociado*/
        asset.belongsTo(models.assetState, {
          onDelete: "RESTRICT",
          foreignKey: {
            allowNull : false,
            name      : 'assetState_id'
          }
        });
      }

    }
  });

  return asset;
};


"use strict";

module.exports = function(sequelize, DataTypes) {
  var assetState = sequelize.define("assetState", {
    state: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        assetState.hasMany(models.asset)
      }
    }
  });

  return assetState;
};

问题是,当我检查postgres中的资产表时,我有两列(“ assetState_id”,“ assetState”),我想这是因为我明确给出了关系的名称,因为我可以不生成列“ assetState” “?

谢谢

埃文·西洛基(Evan Siroky)

您可以在assetState表中声明一个主键,然后在关联定义中引用该主键:

var assetState = sequelize.define("assetState", {
  assetState_id: { 
    type: Sequelize.INTEGER, 
    primaryKey: true, 
    autoIncrement: true
  }, 
  state: DataTypes.STRING
}, {
  classMethods: {
    associate: function(models) {
      assetState.hasMany(models.asset, { foreignKey: 'assetState_id' })
    }
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Sequelize和MySql选择外键列的名称?

来自分类Dev

Sequelize js:使用外键创建/更新

来自分类Dev

使用外键 sequelize 查询的问题

来自分类Dev

是否可以使用Sequelize强制外键存在?

来自分类Dev

无法使用 sequelize 用外键连接 2 个表

来自分类Dev

Sequelize模型的外键定义

来自分类Dev

根据外键是否存在使用 scriptella 复制数据

来自分类Dev

在MySQL中使用外键删除列

来自分类Dev

在MySQL中使用外键删除列

来自分类Dev

Sequelize不会创建外键作为约束

来自分类Dev

不会创建带有Sequelize的外键

来自分类Dev

如何为Sequelize模型设置外键?

来自分类Dev

不会创建带有Sequelize的外键

来自分类Dev

sequelize js中的自引用外键

来自分类Dev

复制表并将外代理键列替换为文本列

来自分类Dev

如何使用Sequelize在同一张表上创建外键?

来自分类Dev

SQLite使用外键

来自分类Dev

SQL Server:使用多列外键创建表

来自分类Dev

如何使用外键访问其他表的列

来自分类Dev

使用Angular指令的Kendo UI Grid外键列

来自分类Dev

如何使用外键访问其他表的列

来自分类Dev

两列的外键参考

来自分类Dev

根据外键增加的列

来自分类常见问题

GraphQL的Sequelize中的OneToMany关联。自定义外键

来自分类Dev

Sequelize-多对多关联-3个外键

来自分类Dev

GraphQL的Sequelize中的OneToMany关联。自定义外键

来自分类Dev

Sequelize和Postgres-无法实现外键约束

来自分类Dev

在 Sequelize 中创建主键和外键关系

来自分类Dev

sequelize - 添加外键后,内连接出现错误