2016-05-16 15 views
3

私はすでにpostgresqlにテーブルを持っています。私はsequelizeを使用してそれらからデータを取得したい。私はそれを行うためにいくつかの方法を使いました。しかし、db schmaをmapして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"テスト ";

そして私はsequelizeテストテーブルからデータを取得し、それは私が持っていない列を取り出し、なぜ私が理解することはできません

column \"id\" does not exist 

ある別の出力を取得します。

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を確認してください。これは、今後の問題の解決に役立つ可能性があるためです。

関連する問題