J'obtiens une colonne inconnue 'userDetails.createdAt' dans 'liste de champs' lorsque j'essaie de récupérer avec association.
L'utilisation findAll
sans association fonctionne très bien.
Mon code est le suivant:
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
la source
la source
timestamps: false
c'était assez, mais tout à coup, Sequelize a ajouté un `.createdAt` au SELECT d'une table spécifique, dans une colonne de clé étrangère. Ensuite, j'ai eu besoin d'incluredefine: { timestamps: false }
dans l'instanciation Sequelize et cela a fonctionné pour moi.J'ai eu la même erreur lors de la migration de notre projet de laravel vers featherjs. Les tables ont des noms de colonne created_at, updated_at au lieu de createdat, updatedat. J'ai dû utiliser le mappage de nom de champ dans les modèles Sequelize comme indiqué ci-dessous
la source
J'ai eu la même erreur, deux solutions :
la source
Désactiver les horodatages Ex: -
la source
Eh bien, peut-être trop tard, mais vous pouvez créer createdAt, updatedAt lors de la migration comme
J'utilise express et séquelle mysql, puis le modèle définit simplement comme normal par exemple:
la source
Pour postgresql:
Inutile de dire, remplacer
user
,pass
,url
,port
et lesdbname
valeurs avec vos valeurs de configuration.la source