2017-11-10 3 views
0

Ich habe ein Modell für meine Datenbank erstellt und dann migration erfolgreich erstellt die Tabelle in der Datenbank danach erstellt ich Migration, um Spalte zu dieser vorhandenen Tabelle hinzuzufügen. Wenn ich model.findall Abfrage ausführen es wird nur die Attribute, die ich zum ersten Mal zum Beispiel erstellt, hier ist meine ModelldateiWarum Modell nicht alle Attribute in der Tabelle in Sequelize

'use strict'; 
module.exports = { 
up: (queryInterface, Sequelize) => { 
return queryInterface.createTable('ActiveUsers', { 
    id: { 
    allowNull: false, 
    autoIncrement: true, 
    primaryKey: true, 
    type: Sequelize.INTEGER 
    }, 
    username: { 
    type: Sequelize.STRING 
    }, 
    name: { 
    type: Sequelize.STRING 
    }, 
    socketId: { 
    type: Sequelize.STRING 
    }, 
    createdAt: { 
    allowNull: false, 
    type: Sequelize.DATE 
    }, 
    updatedAt: { 
    allowNull: false, 
    type: Sequelize.DATE 
    } 
    }); 
}, 
down: (queryInterface, Sequelize) => { 
return queryInterface.dropTable('ActiveUsers'); 
} 
}; 

hier ist die Dateimigration Spalte dieser Tabelle hinzuzufügen

'use strict'; 

module.exports = { 
up: (queryInterface, Sequelize) => { 
queryInterface.addColumn(
    'ActiveUsers', 
    'Token', 
    { 
    type: Sequelize.STRING, 
    allowNull: false 
    } 
    ) 

    }, 

    down: (queryInterface, Sequelize) => { 

} 
}; 

hier Tabelle ist pic table es nur die Attribute erhält, die in Modelldatei vorhanden sind, dh

username,name,socketId,updatedAt,createdAt 

, warum es nicht den Wert von

token,status 

bekommen hier ist mein Code

activeusers.findAll({raw:true}).then(Users=>{ 

     console.log('online users') 


    }) 

Antwort

0

Wir haben Spalte Felder hinzufügen Datei manuell zu modellieren. dann wird es diese Felder holen

0

Die erste Datei, die Sie geschrieben haben, ist keine Modelldatei, es ist eine Migrationsdatei. Wenn Sie Ihre neuen Felder auswählen möchten, sollten Sie sie zu Ihrer Modelldatei hinzufügen.

Ihre Modelldatei sollte wie folgt aussehen:

module.exports = function(sequelize, DataTypes) { 
    return sequelize.define('activeUsers', { 
     id: { 
      type: DataTypes.STRING, 
      allowNull: false, 
      primaryKey: true, 
      unique: true 
     }, 
     username: { 
      type: Sequelize.STRING 
     }, 
     name: {    
      type: Sequelize.STRING 
     }, 
     socketId: { 
      type: Sequelize.STRING 
     }, 
     token: { 
      type: Sequelize.STRING 
     }, 
     status: { 
      type: Sequelize.STRING 
     }, 
     createdAt: { 
      allowNull: false, 
      type: Sequelize.DATE 
     }, 
     updatedAt: { 
      allowNull: false, 
      type: Sequelize.DATE 
     } 
    }); 
}; 

Mehr erfahren Sie in Sequelize docs darüber lesen, wie Modelle zu einem Projekt hinzuzufügen.

Verwandte Themen