Otrzymuję nieznaną kolumnę „userDetails.createdAt” w „liście pól” podczas próby pobrania z powiązaniem.
Używanie findAll
bez skojarzenia działa dobrze.
Mój kod wygląda następująco:
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
David Limkys
źródło
źródło
timestamps: false
wystarczyło, ale nagle Sequelize dodał `.createdAt` do SELECT określonej tabeli, w kolumnie klucza obcego. Potem musiałem dołączyćdefine: { timestamps: false }
do instancji Sequelize i to zadziałało.Ten sam błąd wystąpił podczas migracji naszego projektu z laravel do featherjs. Tabele mają nazwy kolumn utworzony_at, zaktualizowany_at zamiast utworzony, zaktualizowany. Musiałem użyć mapowania nazw pól w modelach Sequelize, jak podano poniżej
źródło
Mam ten sam błąd, dwa rozwiązania :
źródło
Wyłącz sygnatury czasowe Np .: -
źródło
cóż, może za późno, ale możesz utworzyć createdAt, updatedAt podczas migracji
Używam mysql express i sequelize, a następnie model definiuje się tak, jak normalnie, na przykład:
źródło
W przypadku postgresql:
Nie trzeba dodawać, wymieniać
user
,pass
,url
,port
idbname
wartości z wartościami konfiguracyjnymi.źródło