Ich versuche, eine Today-Tabelle in Node Express mithilfe von Sequelize with Postgresql mit einer Fremdschlüsseleinschränkung zu ergänzen. Ich erhalte die Fehlermeldung "Unbehandelte Ablehnung SequelizeDatabaseError: Spalte" UserId "existiert nicht". Wie Sie sehen können, gibt es sowohl "userId" als auch "UserId" in der SELECT-Abfrage. Hinzufügen von Tabellenspalte mit Fremdschlüsseleinschränkung mithilfe von Migrationen in Sequelize
Die SELECT-Abfrage wird von einem einfachen Todo.findAll() erstellt. Ich glaube, es ist etwas falsch, wie ich die Fremdschlüssel contraints in der Migrationsdatei 20161116202040-add-user-id-to-todos.js
module.exports = {
up: function (queryInterface, Sequelize) {
return queryInterface.addColumn(
'Todos',
'userId', {
type: Sequelize.INTEGER,
references: {
model: 'Users',
key: 'id'}})},
Die Modelle/user.js wie folgt erstellen aussieht:
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
email: DataTypes.STRING,
password: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
User.hasMany(models.Todo);}}});
return User;};
die Modelle/todo.js sieht wie folgt aus:
module.exports = function(sequelize, DataTypes) {
var Todo = sequelize.define('Todo', {
name: DataTypes.STRING,
userId: DataTypes.INTEGER
},{
classMethods: {
associate: function(models) {
Todo.belongsTo(models.User); }}});
return Todo;};
Danke. Ich habe es herausgefunden. Es scheint mir, dass Sie auch die Benutzerkennung "userId" hinzufügen müssen. – Andreas