Estou recebendo uma coluna Desconhecida 'userDetails.createdAt' na 'lista de campos' ao tentar obter com associação.
Usando findAll
sem associação funciona bem.
Meu código é o seguinte:
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
fonte
fonte
timestamps: false
bastava, mas de repente o Sequelize adicionou um `.createdAt` ao SELECT de uma tabela específica, em uma coluna de chave estrangeira. Então eu precisei incluirdefine: { timestamps: false }
na instanciação Sequelize e funcionou para mim.Recebi o mesmo erro ao migrar nosso projeto de laravel para featherjs. As tabelas têm nomes de colunas created_at, updated_at em vez de createdat, updatedat. Tive que usar o mapeamento de nome de campo em modelos Sequelize conforme fornecido abaixo
fonte
Recebi o mesmo erro, duas soluções:
fonte
Desativar carimbos de data / hora Ex: -
fonte
bem, talvez tarde demais, mas você pode criar createdAt, updatedAt quando a migração, como
Estou usando o Express e sequelize o mysql, então o modelo apenas define como normal para ex:
fonte
Para postgresql:
Escusado será dizer, substitua
user
,pass
,url
,port
edbname
valores com os valores de configuração.fonte