【问题标题】:How do I read the column properties of tables in Sequelize?如何读取 Sequelize 中表格的列属性?
【发布时间】:2017-08-20 18:26:28
【问题描述】:

我通读了documentation for Sequelize 并了解了如何使用define,但我看不到如何从Sequelize 定义中读取type/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
    },
    // ...

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    注意模型和模型管理器的结构:

    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 在编译时未初始化。

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 2020-04-07
      • 2023-03-21
      • 2015-05-31
      • 1970-01-01
      • 2011-10-09
      • 2021-10-28
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多