Descripción

Esta migración crea la tabla roles, diseñada para almacenar los roles de los usuarios en el sistema. Incluye campos para el nombre y una descripción opcional del rol, además de las marcas de tiempo estándar para el control de cambios.

Código de la migración

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('roles', {
      id: {
        type: Sequelize.INTEGER,
        allowNull: false,
        autoIncrement: true,
        primaryKey: true
      },
      nombre: {
        type: Sequelize.STRING,
        allowNull: false,
        unique: true, // Asegura que los nombres de rol sean únicos
      },
      descripcion: {
        type: Sequelize.TEXT,
        allowNull: true, // Permite que la descripción sea opcional
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE,
        defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE,
        defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
      }
    });
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.dropTable('roles');
  }
};

Estructura de la tabla

  1. id
  2. nombre
  3. descripcion
  4. createdAt
  5. updatedAt

Funcionalidades

  1. up
  2. down