2016-05-16 3 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 });

консоль будет выходной результат следующим образом:

Выполнение (по умолчанию): SELECT "ID", "race_id", "race_name", "createdAt", " updatedAt "FROM" тесты "AS" test ";

И я получу еще один вывод, который

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, так как он может помочь вам в решении будущих проблем.

Смежные вопросы