Я получаю неизвестный столбец «userDetails.createdAt» в «списке полей» при попытке получить с помощью ассоциации.
Использование findAll
без ассоциации работает нормально.
Мой код выглядит следующим образом:
var userDetails = sequelize.define('userDetails', {
userId :Sequelize.INTEGER,
firstName : Sequelize.STRING,
lastName : Sequelize.STRING,
birthday : Sequelize.DATE
});
var user = sequelize.define('user', {
email: Sequelize.STRING,
password: Sequelize.STRING
});
user.hasOne(userDetails, {foreignKey: 'userId'});
user.findAll({include: [userDetails] }).success(function(user) {
console.log(user)
});
node.js
sequelize.js
Дэвид Лимкис
источник
источник
timestamps: false
было достаточно, но внезапно Sequelize добавил '.createdAt` к SELECT конкретной таблицы в столбце внешнего ключа. Затем мне нужно было включитьdefine: { timestamps: false }
экземпляр Sequelize, и это сработало для меня.У меня такая же ошибка при переносе нашего проекта с laravel на Feejs. Таблицы имеют имена столбцов created_at, updated_at вместо createdat, updatedat. Мне пришлось использовать сопоставление имен полей в моделях Sequelize, как указано ниже
источник
У меня такая же ошибка, два решения :
источник
Отключить временные метки Ex: -
источник
ну, может быть, слишком поздно, но вы можете создать createdAt, updatedAt при миграции, например
Я использую экспресс и продолжаю mysql, тогда модель просто определяется как обычно, например:
источник
Для postgresql:
Само собой разумеется, заменить
user
,pass
,url
,port
иdbname
значения с вашими значениями конфигурации.источник