Esta migración crea la tabla empresas, diseñada para almacenar información sobre empresas registradas en el sistema. Incluye campos para datos básicos como nombre, dirección, teléfono, email, sitio web, descripción, y una relación con la tabla industrias.
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('empresas', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false,
},
nombre: {
type: Sequelize.STRING,
allowNull: false,
},
direccion: {
type: Sequelize.STRING,
},
telefono: {
type: Sequelize.STRING,
},
email: {
type: Sequelize.STRING,
},
sitioWeb: {
type: Sequelize.STRING,
},
descripcion: {
type: Sequelize.TEXT,
},
industriaId: {
type: Sequelize.INTEGER,
references: {
model: 'industrias', // Relación con la tabla 'industrias'
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('empresas');
}
};
id
INTEGERautoIncrement: true: Incremento automático para cada registro.primaryKey: true: Clave primaria de la tabla.allowNull: false: No puede ser nulo.nombre
STRINGallowNull: false: No puede ser nulo. Indica el nombre de la empresa.direccion
STRINGtelefono
STRINGemail
STRINGsitioWeb
STRINGdescripcion
TEXTindustriaId
INTEGERindustrias, conectada mediante el campo id.onUpdate: 'CASCADE': Si el id de la industria cambia, se actualiza en esta tabla.onDelete: 'CASCADE': Si una industria es eliminada, también se eliminan las empresas relacionadas.createdAt
DATEallowNull: false: Marca la fecha de creación del registro.updatedAt
DATEallowNull: false: Marca la fecha de la última actualización del registro.up
empresas con los campos y relaciones especificados.down
empresas de la base de datos.