添加新的列/属性以序列化模型

Add and new column/attribute to sequelize model

本文关键字:序列化 模型 属性 添加      更新时间:2023-09-26

是否有一种方法可以向已经定义的模型添加新列?

类似:

var Agency = sequelize.define("agency", {
  agency_id: {
    type: DataTypes.STRING(255),
    primaryKey: true
  },
  agency_name: DataTypes.STRING(255),
  agency_url: DataTypes.STRING(255)
});
Agency.addColumn({ agency_lang: DataTypes.STRING(2) });

理论上您可以先执行Agency.rawAttributes.agency_lang =...,然后调用Agency.refreshAttributes。然而,不能保证这将在所有情况下工作,因为refreshAttributes不是公共API的一部分。

为什么需要在定义模型之后更改属性?Sequelize不支持自动修改表,因此您需要DROP TABLE + CREATE TABLE来反映DB

中的新结构。