Saltar al contenido

sequelize.js TIMESTAMP no DATETIME

Traemos la mejor solución que hemos encontrado en todo internet. Esperamos que te sea de mucha utilidad y si quieres compartir algún detalle que nos pueda ayudar a crecer hazlo libremente.

Solución:

Solo pasa ‘TIMESTAMP’ string a tu tipo

module.exports = 
  up: function (queryInterface, Sequelize) 
    return queryInterface.createTable('users', 
      id: 
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
      ,
        created_at: 
        type: 'TIMESTAMP',
        defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
        allowNull: false
      ,
      updated_at: 
        type: 'TIMESTAMP',
        defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
        allowNull: false
      
    );
  
;

De acuerdo con la documentación de Sequelize, puede establecer un valor predeterminado de Sequelize.NOW para crear un campo de marca de tiempo. Esto tiene el efecto, pero se basa en Sequelize para completar la marca de tiempo. No crea un “CURRENT_TIMESTAMP’ attribute en la mesa.

var Foo = sequelize.define('Foo', 
    // default values for dates => current time
    myDate:  
         type: Sequelize.DATE, 
         defaultValue: Sequelize.NOW 
    
);

Por lo tanto, esto logra el objetivo final de tener un campo de marca de tiempo, pero se controla a través de Sequelize y no a través del motor de base de datos real.

También parece funcionar en bases de datos que no tienen una funcionalidad de marca de tiempo, por lo que puede ser un beneficio.

URL de referencia: http://sequelize.readthedocs.org/en/latest/docs/models-definition/#definition

En mi caso, creo un modelo como el siguiente.

module.exports = (sequelize, type) => 
    return sequelize.define('blog', 
        blogId: 
          type: type.INTEGER,
          primaryKey: true,
          autoIncrement: true
        ,
        text: type.STRING,
        createdAt:
            type: 'TIMESTAMP',
            defaultValue: sequelize.literal('CURRENT_TIMESTAMP'),
            allowNull: false
        ,
        updatedAt:
            type: 'TIMESTAMP',
            defaultValue: sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
            allowNull: false
        
    )

ingrese la descripción de la imagen aquí

Recuerda que tienes la capacidad de comentar si te fue preciso.

¡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 *