Solución:
Para agregar nuevos campos a la tabla, debemos usar el esqueleto de migración como se muestra a continuación.
sequelize migration:create --name Users
Abra el archivo de migración y agregue los siguientes códigos
module.exports = {
up: function (queryInterface, Sequelize) {
return [ queryInterface.addColumn(
'Users',
'gender',
Sequelize.STRING
),
queryInterface.addColumn(
'Users',
'age',
Sequelize.STRING
)];
},
down: function (queryInterface, Sequelize) {
// logic for reverting the changes
}
};
Entonces solo ejecuta la migración
node_modules/.bin/sequelize db:migrate
Nota: El pasado queryInterface El objeto se puede utilizar para modificar la base de datos. los Secuela El objeto almacena los tipos de datos disponibles como STRING o INTEGER.
Lista completa de métodos en la interfaz de consulta
Espero que esto ayude. Si tiene algún problema, hágamelo saber.
La respuesta de Suvethan es correcta, pero el fragmento de código de migración tiene un error menor. Las migraciones de secuela esperan que se devuelva una promesa, que se indica en un comentario en el esqueleto de migración generado:
Add altering commands here.
Return a promise to correctly handle asynchronicity.
Example:
return queryInterface.createTable('users', { id: Sequelize.INTEGER });
Por lo tanto, devolver una serie de promesas puede conducir potencialmente a resultados inesperados porque no hay garantía de que todas las promesas se hayan resuelto antes de pasar a la siguiente migración. Para la mayoría de las operaciones, es poco probable que surja algún problema, ya que la mayoría de las cosas se completarán antes de que Sequelize cierre el proceso. Pero creo que es mejor prevenir que curar cuando se trata de migraciones de bases de datos. Aún puede aprovechar la variedad de promesas; solo necesitas envolverlo en un Promise.all
llama.
El ejemplo de Suvethan, pero con Promise.all:
module.exports = {
up: function (queryInterface, Sequelize) {
return Promise.all([
queryInterface.addColumn(
'Users',
'gender',
Sequelize.STRING
),
queryInterface.addColumn(
'Users',
'age',
Sequelize.STRING
)
]);
},
down: function (queryInterface, Sequelize) {
// logic for reverting the changes
}
};