任何人都知道如何自定义sequenceize seeder上的select查询
我试过两种方法,但没人工作
第一次尝试

  up: function(queryInterface, Sequelize) {
    return queryInterface.sequelize.query(
      'SELECT * FROM "Users" WHERE username = "admin"',
      { type: queryInterface.sequelize.QueryTypes.SELECT }
    ).then(function(users) {});
    },

然后出错了
SequelizeDatabaseError: column "admin" does not exist

我不明白为什么管理员在这里???
第二次尝试
return queryInterface.sequelize.query('SELECT * FROM "Users" WHERE username = :admin', {
  replacement: {
    admin: 'admin'
  },
  type: queryInterface.sequelize.QueryTypes.SELECT
}).then(function(users) {
});

出现以下错误
SequelizeDatabaseError: syntax error at or near ":"
第三次尝试
return queryInterface.sequelize.query(
  'SELECT * FROM "Users" WHERE username = ' admin '',
  {type: queryInterface.sequelize.QueryTypes.SELECT})
.then(function(users) { })

错误:
SyntaxError: missing ) after argument list

更新
第四次尝试
    return queryInterface.sequelize.query(
      'SELECT * FROM Users WHERE username = "admin"',
      { type: queryInterface.sequelize.QueryTypes.SELECT }
    ).then(function(users) {});

出现另一个错误:
    SequelizeDatabaseError: relation "Users" does not exist

queryInterface.sequelize.query('SELECT * FROM "Users"')工作正常。我想问题在于
我快疯了:)
提前感谢您的帮助!

最佳答案

在仔细阅读了sequentize文档之后,我找到了解决这个问题的方法。Sequelize raw queries replacements。如果您遇到同样的问题,请尝试以下解决方案

return queryInterface.sequelize.query(
  'SELECT * FROM "Users" WHERE username = ? ', {
    replacements: ['admin'],
    type: queryInterface.sequelize.QueryTypes.SELECT
  }).then(users => {

10-06 14:01
查看更多