Saltar al contenido

¿Cómo agregar una columna en Sequelize modelo existente?

Si encuentras algo que no entiendes puedes dejarlo en la sección de comentarios y te ayudaremos lo más rápido posible.

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
  
;

Luego solo ejecuta la migración

node_modules/.bin/sequelize db:migrate

Nota: El pasado interfaz de consulta El objeto se puede utilizar para modificar la base de datos. El 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 tienes algún problema, házmelo saber.

La respuesta de Suvethan es correcta, pero el fragmento de código de migración tiene un error menor. Las migraciones de Sequelize 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 );

Entonces, devolver un array 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 tenga problemas, 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 lamentar cuando se trata de migraciones de bases de datos. Todavía puede aprovechar la array de promesas; solo tienes que envolverlo en un Promise.all llamar.

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
  
;

Nos encantaría que puedieras comunicar esta noticia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *