我已经在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 });
控制台将输出结果如下:
执行(默认):SELECT" id"," race_id"," race_name"," createdAt", " updatedAt"从"测试" AS"测试&#34 ;;
我将获得另一个输出
column \"id\" does not exist
我无法弄清楚为什么sequelize从测试表中检索数据并检索我没有的列。
如何使用sequelize从现有表格中选择表格? 我需要使用ORM来满足需求,并且不能使用其他方式来获取数据。
答案 0 :(得分:4)
您应该定义主键:
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,因为它可能会对您未来的问题有所帮助。