【问题标题】:Add and new column/attribute to sequelize model添加和新列/属性以续集模型
【发布时间】:2015-08-12 22:03:04
【问题描述】:

有没有办法向已定义的模型添加新列?

类似:

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) });

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

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

    为什么在定义模型后需要更改属性? Sequelize 不支持自动更改表,因此您需要 DROP TABLE + CREATE TABLE 以反映数据库中的新结构

    【讨论】:

    • 填充表格时,在某些情况下我想添加一列。在这种特定情况下,我计划使用 PostGIS 添加几何列。
    • 但是您确实意识到您仍然需要手动创建ALTER TABLE x ADD COLUMN,对吗? (或调用addColumn,但仅将其添加到模型定义中是不够的)
    • 刚刚尝试过,但出现错误。我最终用另一个模型定义覆盖了现有的。
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 2019-09-21
    • 2021-10-18
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    相关资源
    最近更新 更多