迁移 postgress 出错,我有两列,为什么?

Error with migration postgress, i have two columns over, why?

我有一个迁移,我只有四个列,id、name、last_name 和电子邮件,但是当我从邮递员那里查询时,它显示 SELECT \"id\", \"name\", \"lastName\", \"email\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\" 上的其他列出了什么问题?

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('User', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      name: {
        type: Sequelize.STRING,
        allowNull: false,
      },
      last_name: {
        type: Sequelize.STRING,
        allowNull: false,
      },
      email: {
        type: Sequelize.STRING,
        allowNull: false,
      },
    });
  },
  down: (queryInterface) => {
    return queryInterface.dropTable('User');
  }
};

当我使用我的服务时

static async getAllUsers() {
    try {
      const users = await database.User.findAll();
      console.log('COnsOLE ', users)
      return users
    } catch (error) {
      throw error;
    }
  }

我从邮递员那里得到这个错误:

{
    "status": "error",
    "message": {
        "name": "SequelizeDatabaseError",
        "parent": {
            "length": 104,
            "name": "error",
            "severity": "ERROR",
            "code": "42P01",
            "position": "73",
            "file": "parse_relation.c",
            "line": "1180",
            "routine": "parserOpenTable",
            "sql": "SELECT \"id\", \"name\", \"lastName\", \"email\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\";"
        },
        "original": {
            "length": 104,
            "name": "error",
            "severity": "ERROR",
            "code": "42P01",
            "position": "73",
            "file": "parse_relation.c",
            "line": "1180",
            "routine": "parserOpenTable",
            "sql": "SELECT \"id\", \"name\", \"lastName\", \"email\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\";"
        },
        "sql": "SELECT \"id\", \"name\", \"lastName\", \"email\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\";"
    }
}

我以前多次使用这个命令:sequelize db:migratesequelize db:migrate:undo

这是我的 git 存储库:https://github.com/x-rw/basePostgresExpressjs

你应该位于服务器目录并写入npm run dev

那是因为你的 sequelize 模型实例有 updatedAt 和 createdAt 字段,因此它查询数据库也得到这两个字段。但是在您的迁移文件中没有 updatedAt 和 createdAt 字段。所以你的数据库 table 没有这些列。

你有两个选择,如果你真的不想使用 updatedAt 和 createdAt,你应该在初始化你的 sequelize 模型实例时指定它。 Check the api reference. 你应该会看到 options.timestamps。您可以将其设置为 false。

class YourModel extends Sequelize.Model { }
YourModel.init(
    {
        name: {
            type: Sequelize.DataTypes.STRING(100),
            allowNull: false,
            validate: {
                notNull: true,
                notEmpty: true,
                len: [2, 100]
            }
        },
    },
    {
        sequelize: sequelizeInstance,
        timestamps: false // This is what you need.
    }
);

但是,如果您想使用它,请选中 以生成正确的迁移。