如何读取Sequelize中表的列属性?

时间:2017-03-27 21:21:15

标签: javascript node.js sequelize.js

我已经阅读了documentation for Sequelize,我看到了如何使用define,但我不知道如何从Sequelize定义中读取类型/ allowNull / primaryKey / autoIncrement属性。这是sequelize-auto;

生成的文件的一部分
/* jshint indent: 2 */

module.exports = function(sequelize, DataTypes) {
  return sequelize.define('account', {
    id: {
      type: DataTypes.BIGINT,
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    parent_account_id: {
      type: DataTypes.BIGINT,
      allowNull: false,
      references: {
        model: 'account',
        key: 'id'
      }
    },
    master_account_id: {
      type: DataTypes.BIGINT,
      allowNull: false,
      references: {
        model: 'account',
        key: 'id'
      }
    },
    name: {
      type: DataTypes.STRING,
      allowNull: false
    },
    // ...

1 个答案:

答案 0 :(得分:0)

注意模型和modelManager的结构:

models: { user: user },
modelManager: ModelManager { models: [ user ], sequelize: [Circular] },

我认为它没有扩展用户,因为对象必须太大,所以我尝试了:

var userDefinition = this.orm["modelManager"].getModel("user");
if (userDefinition.attributes.id.type.key == "BIGINT") ...

[]必须在TypeScript中使用,因为modelManager未在编译时初始化。