自定义查询sequelize种子

Toa*_*ran 1 postgresql sequelize.js postgresql-9.4 sequelize-cli

任何人都知道如何在sequelize seeder上自定义选择查询

我尝试了两种方法,但没有一项工作

第一次尝试

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

然后出现错误

SequelizeDatabaseError: column "admin" does not exist
Run Code Online (Sandbox Code Playgroud)

我不明白为什么admin在这里?

第二次尝试

return queryInterface.sequelize.query('SELECT * FROM "Users" WHERE username = :admin', {
  replacement: {
    admin: 'admin'
  },
  type: queryInterface.sequelize.QueryTypes.SELECT
}).then(function(users) {
});
Run Code Online (Sandbox Code Playgroud)

发生以下错误

SequelizeDatabaseError: syntax error at or near ":"

第三次尝试

return queryInterface.sequelize.query(
  'SELECT * FROM "Users" WHERE username = ' admin '',
  {type: queryInterface.sequelize.QueryTypes.SELECT})
.then(function(users) { })
Run Code Online (Sandbox Code Playgroud)

错误:

SyntaxError: missing ) after argument list
Run Code Online (Sandbox Code Playgroud)

更新

第四次尝试

    return queryInterface.sequelize.query(
      'SELECT * FROM Users WHERE username = "admin"',
      { type: queryInterface.sequelize.QueryTypes.SELECT }
    ).then(function(users) {});
Run Code Online (Sandbox Code Playgroud)

出现另一个错误:

    SequelizeDatabaseError: relation "Users" does not exist
Run Code Online (Sandbox Code Playgroud)

queryInterface.sequelize.query('SELECT * FROM "Users"')可以正常工作。我认为这里的问题是在哪里查询

这让我发疯了:)

预先感谢您的帮助!

Toa*_*ran 6

仔细阅读Sequelize文档后,我已找到解决该问题的方法。序列化原始查询替换。如果您遇到相同的问题,请尝试以下解决方案

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