2016-05-16 17 views
3

我已經在postgresql中有表。我想使用sequelize從它們中檢索數據。我用了幾種方法來做到這一點。但仍然無法將db schma映射到node.js中的續集。如何使用sequelize從現有表中選擇數據

const Test = Conn.define('test', { 
      race_id: 
      { 
      type: Sequelize.STRING, 
      allowNull: false 
      }, 
      race_name: 
      { 
      type: Sequelize.STRING, 
      allowNull: false 
      } 
    }); 

    Conn.sync(); 
export default Conn; 

我在node.js中定義模式,並在postgresql中有一個具有相同模式的表。

但是,當執行Db.models.test.findAll({ where: args });

控制檯將輸出結果如下:

執行(默認):選擇 「ID」, 「race_id」, 「race_name」, 「createdAt」, 「 updatedAt「FROM」測試「AS」測試「;

我會得到另一個輸出,

column \"id\" does not exist 

我想不通爲什麼sequelize檢索測試表中的數據,並檢索,我沒有列。

如何使用sequelize從現有表中選擇表格? 我需要使用ORM作爲需求,不能使用其他方式獲取數據。

回答

3

你應該定義主鍵:

const Test = Conn.define('test', { 
     race_id: 
     { 
     type: Sequelize.STRING, 
     allowNull: false, 
     primaryKey: true 
     }, 
     race_name: 
     { 
     type: Sequelize.STRING, 
     allowNull: false 
     } 
}); 

這將在您的查詢與您的主鍵替換id

檢查working with legacy tables,因爲它可能會幫助您解決未來的問題。

相關問題