From 9671484944336a65ad57a553255c07893934c5e6 Mon Sep 17 00:00:00 2001 From: "Lemuel H. Marquez Rosas" Date: Wed, 30 Sep 2020 22:58:05 -0500 Subject: [PATCH] foreignkeys --- db/install.js | 158 +++++++++++++++++++ db/tables/{CatalogoCarrera.js => Carrera.js} | 14 +- db/tables/CarreraPlantel.js | 41 +++++ db/tables/Carrito.js | 9 ++ db/tables/CatalogoCarreraPlantel.js | 22 --- db/tables/Equipo.js | 18 +++ db/tables/Horario.js | 1 + db/tables/Mesa.js | 13 ++ db/tables/Multa.js | 48 ++++++ db/tables/Operador.js | 9 ++ db/tables/Parte.js | 1 + db/tables/{CatalogoPlantel.js => Plantel.js} | 14 +- db/tables/Prestamo.js | 59 +++++++ db/tables/Reporte.js | 9 ++ db/tables/Salon.js | 10 ++ db/tables/Status.js | 1 + db/tables/TipoCarrito.js | 1 + db/tables/TipoMulta.js | 1 + db/tables/TipoOperador.js | 1 + db/tables/TipoUsuario.js | 1 + db/tables/Usuario.js | 18 +++ package.json | 3 +- 22 files changed, 415 insertions(+), 37 deletions(-) rename db/tables/{CatalogoCarrera.js => Carrera.js} (65%) create mode 100644 db/tables/CarreraPlantel.js delete mode 100644 db/tables/CatalogoCarreraPlantel.js create mode 100644 db/tables/Multa.js rename db/tables/{CatalogoPlantel.js => Plantel.js} (60%) diff --git a/db/install.js b/db/install.js index e69de29..5b2da33 100644 --- a/db/install.js +++ b/db/install.js @@ -0,0 +1,158 @@ +const colors = require('colors') +const Carrito = require('./tables/Carrito') +const Carrera = require('./tables/Carrera') +const CarreraPlantel = require('./tables/CarreraPlantel') +const Plantel = require('./tables/Plantel') +const Equipo = require('./tables/Equipo') +const Horario = require('./tables/Horario') +const Mesa = require('./tables/Mesa') +const Multa = require('./tables/Multa') +const Operador = require('./tables/Operador') +const Parte = require('./tables/Parte') +const Prestamo = require('./tables/Prestamo') +const Reporte = require('./tables/Reporte') +const Salon = require('./tables/Salon') +const Status = require('./tables/Status') +const TipoCarrito = require('./tables/TipoCarrito') +const TipoMulta = require('./tables/TipoMulta') +const TipoOperador = require('./tables/TipoOperador') +const TipoUsuario = require('./tables/TipoUsuario') +const Usuario = require('./tables/Usuario') + +const drop = async () => { + console.log('\nPaso 1) Desinstalando la db.'.bold.blue) + + await Multa.drop() + console.log('La tabla Multa se desinstalo correctamente.'.magenta) + + await TipoMulta.drop() + console.log('La tabla TipoMulta se desinstalo correctamente.'.magenta) + + await Reporte.drop() + console.log('La tabla Reporte se desinstalo correctamente.'.magenta) + + await Parte.drop() + console.log('La tabla Parte se desinstalo correctamente.'.magenta) + + await Prestamo.drop() + console.log('La tabla Prestamo se desinstalo correctamente.'.magenta) + + await Operador.drop() + console.log('La tabla Operador se desinstalo correctamente.'.magenta) + + await TipoOperador.drop() + console.log('La tabla TipoOperador se desinstalo correctamente.'.magenta) + + await Equipo.drop() + console.log('La tabla Equipo se desinstalo correctamente.'.magenta) + + await Carrito.drop() + console.log('La tabla Carrito se desinstalo correctamente.'.magenta) + + await TipoCarrito.drop() + console.log('La tabla TipoCarrito se desinstalo correctamente.'.magenta) + + await Salon.drop() + console.log('La tabla Salon se desinstalo correctamente.'.magenta) + + await Mesa.drop() + console.log('La tabla Mesa se desinstalo correctamente.'.magenta) + + await Status.drop() + console.log('La tabla Status se desinstalo correctamente.'.magenta) + + await Horario.drop() + console.log('La tabla Horario se desinstalo correctamente.'.magenta) + + await Usuario.drop() + console.log('La tabla Usuario se desinstalo correctamente.'.magenta) + + await TipoUsuario.drop() + console.log('La tabla TipoUsuario se desinstalo correctamente.'.magenta) + + await CarreraPlantel.drop() + console.log( + 'La tabla CarreraPlantel se desinstalo correctamente.'.magenta + ) + + await Carrera.drop() + console.log('La tabla Carrera se desinstalo correctamente.'.magenta) + + await Plantel.drop() + console.log('La tabla Plantel se desinstalo correctamente.'.magenta) +} + +const sync = async () => { + console.log('\nPaso 2) Instalando la db'.bold.blue) + + await Carrera.sync() + console.log('La tabla Carrera se instalo correctamente.'.magenta) + + await Plantel.sync() + console.log('La tabla Plantel se instalo correctamente.'.magenta) + + await CarreraPlantel.sync() + console.log( + 'La tabla CarreraPlantel se instalo correctamente.'.magenta + ) + + await TipoUsuario.sync() + console.log('La tabla TipoUsuario se instalo correctamente.'.magenta) + + await Usuario.sync() + console.log('La tabla Usuario se instalo correctamente.'.magenta) + + await Horario.sync() + console.log('La tabla Horario se instalo correctamente.'.magenta) + + await Status.sync() + console.log('La tabla Status se instalo correctamente.'.magenta) + + await Mesa.sync() + console.log('La tabla Mesa se instalo correctamente.'.magenta) + + await Salon.sync() + console.log('La tabla Salon se instalo correctamente.'.magenta) + + await TipoCarrito.sync() + console.log('La tabla TipoCarrito se instalo correctamente.'.magenta) + + await Carrito.sync() + console.log('La tabla Carrito se instalo correctamente.'.magenta) + + await Equipo.sync() + console.log('La tabla Equipo se instalo correctamente.'.magenta) + + await TipoOperador.sync() + console.log('La tabla TipoOperador se instalo correctamente.'.magenta) + + await Operador.sync() + console.log('La tabla Operador se instalo correctamente.'.magenta) + + await Prestamo.sync() + console.log('La tabla Prestamo se instalo correctamente.'.magenta) + + await Parte.sync() + console.log('La tabla Parte se instalo correctamente.'.magenta) + + await Reporte.sync() + console.log('La tabla Reporte se instalo correctamente.'.magenta) + + await TipoMulta.sync() + console.log('La tabla TipoMulta se instalo correctamente.'.magenta) + + await Multa.sync() + console.log('La tabla Multa se instalo correctamente.'.magenta) +} + +const install = async () => { + await drop() + await sync() + + console.log( + '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green + ) + process.exit() +} + +install() diff --git a/db/tables/CatalogoCarrera.js b/db/tables/Carrera.js similarity index 65% rename from db/tables/CatalogoCarrera.js rename to db/tables/Carrera.js index 959deb0..2690086 100644 --- a/db/tables/CatalogoCarrera.js +++ b/db/tables/Carrera.js @@ -1,14 +1,13 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') -class CatalogoCarrera extends Model {} -CatalogoCarrera.init( +class Carrera extends Model {} +Carrera.init( { - idCatalogoCarrera: { + idCarrera: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, - autoIncrement: true, unique: true, }, carrera: { @@ -22,9 +21,10 @@ CatalogoCarrera.init( }, { sequelize, - modelName: 'CatalogoCarrera', - tableName: 'catalogo_carrera', + modelName: 'Carrera', + tableName: '_carrera', + timestamps: false, } ) -module.exports = CatalogoCarrera +module.exports = Carrera diff --git a/db/tables/CarreraPlantel.js b/db/tables/CarreraPlantel.js new file mode 100644 index 0000000..d58c389 --- /dev/null +++ b/db/tables/CarreraPlantel.js @@ -0,0 +1,41 @@ +const { DataTypes, Model } = require('sequelize') +const sequelize = require('../../config/sequelize.conf') +const Carrera = require('./Carrera') +const Plantel = require('./Plantel') + +class CarreraPlantel extends Model {} +CarreraPlantel.init( + { + idCarreraPlantel: { + type: DataTypes.INTEGER, + primaryKey: true, + allowNull: false, + autoIncrement: true, + unique: true, + }, + idPlantel: { + type: DataTypes.INTEGER, + references: { + model: Plantel, + key: 'idPlantel', + }, + allowNull: false, + }, + idCarrera: { + type: DataTypes.INTEGER, + references: { + model: Carrera, + key: 'idCarrera', + }, + allowNull: false, + }, + }, + { + sequelize, + modelName: 'CarreraPlantel', + tableName: '_carrera_plantel', + timestamps: false, + } +) + +module.exports = CarreraPlantel diff --git a/db/tables/Carrito.js b/db/tables/Carrito.js index 008e5a6..e510f23 100644 --- a/db/tables/Carrito.js +++ b/db/tables/Carrito.js @@ -1,5 +1,6 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const TipoCarrito = require('./TipoCarrito') class Carrito extends Model {} Carrito.init( @@ -19,6 +20,14 @@ Carrito.init( type: DataTypes.STRING(50), allowNull: false, }, + idTipoCarrito: { + type: DataTypes.INTEGER, + references: { + model: TipoCarrito, + key: 'idTipoCarrito', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/CatalogoCarreraPlantel.js b/db/tables/CatalogoCarreraPlantel.js deleted file mode 100644 index 5d7d75a..0000000 --- a/db/tables/CatalogoCarreraPlantel.js +++ /dev/null @@ -1,22 +0,0 @@ -const { DataTypes, Model } = require('sequelize') -const sequelize = require('../../config/sequelize.conf') - -class CatalogoCarreraPlantel extends Model {} -CatalogoCarreraPlantel.init( - { - idCatalogoCarreraPlantel: { - type: DataTypes.INTEGER, - primaryKey: true, - allowNull: false, - autoIncrement: true, - unique: true, - }, - }, - { - sequelize, - modelName: 'CatalogoCarreraPlantel', - tableName: 'catalogo_carrera_plantel', - } -) - -module.exports = CatalogoCarreraPlantel diff --git a/db/tables/Equipo.js b/db/tables/Equipo.js index 7b7eebe..511c0c5 100644 --- a/db/tables/Equipo.js +++ b/db/tables/Equipo.js @@ -1,5 +1,7 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const Carrito = require('./Carrito') +const Status = require('./Status') class Equipo extends Model {} Equipo.init( @@ -27,6 +29,22 @@ Equipo.init( type: DataTypes.BOOLEAN, defaultValue: false, }, + idCarrito: { + type: DataTypes.INTEGER, + references: { + model: Carrito, + key: 'idCarrito', + }, + allowNull: false, + }, + idStatus: { + type: DataTypes.INTEGER, + references: { + model: Status, + key: 'idStatus', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/Horario.js b/db/tables/Horario.js index aab20ff..9286b53 100644 --- a/db/tables/Horario.js +++ b/db/tables/Horario.js @@ -20,6 +20,7 @@ Horario.init( sequelize, modelName: 'Horario', tableName: 'horario', + timestamps: false, } ) diff --git a/db/tables/Mesa.js b/db/tables/Mesa.js index d8d118f..ad9b017 100644 --- a/db/tables/Mesa.js +++ b/db/tables/Mesa.js @@ -1,5 +1,6 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const Status = require('./Status') class Mesa extends Model {} Mesa.init( @@ -15,6 +16,18 @@ Mesa.init( type: DataTypes.STRING(50), allowNull: false, }, + activo: { + type: DataTypes.BOOLEAN, + defaultValue: false, + }, + idStatus: { + type: DataTypes.INTEGER, + references: { + model: Status, + key: 'idStatus', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/Multa.js b/db/tables/Multa.js new file mode 100644 index 0000000..9d91d14 --- /dev/null +++ b/db/tables/Multa.js @@ -0,0 +1,48 @@ +const { DataTypes, Model } = require('sequelize') +const sequelize = require('../../config/sequelize.conf') +const TipoMulta = require('./TipoMulta') +const Prestamo = require('./Prestamo') + +class Multa extends Model {} +Multa.init( + { + idMulta: { + type: DataTypes.INTEGER, + primaryKey: true, + allowNull: false, + autoIncrement: true, + unique: true, + }, + descripcion: { + type: DataTypes.STRING(100), + allowNull: false, + }, + multa: { + type: DataTypes.STRING(100), + allowNull: false, + }, + idTipoMulta: { + type: DataTypes.INTEGER, + references: { + model: TipoMulta, + key: 'idTipoMulta', + }, + allowNull: false, + }, + idPrestamo: { + type: DataTypes.INTEGER, + references: { + model: Prestamo, + key: 'idPrestamo', + }, + allowNull: false, + }, + }, + { + sequelize, + modelName: 'Multa', + tableName: 'multa', + } +) + +module.exports = Multa diff --git a/db/tables/Operador.js b/db/tables/Operador.js index 2683c57..e71b666 100644 --- a/db/tables/Operador.js +++ b/db/tables/Operador.js @@ -1,5 +1,6 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const TipoOperador = require('./TipoOperador') class Operador extends Model {} Operador.init( @@ -19,6 +20,14 @@ Operador.init( type: DataTypes.STRING(100), allowNull: false, }, + idTipoOperador: { + type: DataTypes.INTEGER, + references: { + model: TipoOperador, + key: 'idTipoOperador', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/Parte.js b/db/tables/Parte.js index 50659d8..1d4c4aa 100644 --- a/db/tables/Parte.js +++ b/db/tables/Parte.js @@ -20,6 +20,7 @@ Parte.init( sequelize, modelName: 'Parte', tableName: 'parte', + timestamps: false, } ) diff --git a/db/tables/CatalogoPlantel.js b/db/tables/Plantel.js similarity index 60% rename from db/tables/CatalogoPlantel.js rename to db/tables/Plantel.js index 39ecb13..93c5e69 100644 --- a/db/tables/CatalogoPlantel.js +++ b/db/tables/Plantel.js @@ -1,14 +1,13 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') -class CatalogoPlantel extends Model {} -CatalogoPlantel.init( +class Plantel extends Model {} +Plantel.init( { - idCatalogoPlantel: { + idPlantel: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, - autoIncrement: true, unique: true, }, plantel: { @@ -18,9 +17,10 @@ CatalogoPlantel.init( }, { sequelize, - modelName: 'CatalogoPlantel', - tableName: 'catalogo_plantel', + modelName: 'Plantel', + tableName: '_plantel', + timestamps: false, } ) -module.exports = CatalogoPlantel +module.exports = Plantel diff --git a/db/tables/Prestamo.js b/db/tables/Prestamo.js index fc54d32..e32e20f 100644 --- a/db/tables/Prestamo.js +++ b/db/tables/Prestamo.js @@ -1,5 +1,11 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const Usuario = require('./Usuario') +const Operador = require('./Operador') +const Equipo = require('./Equipo') +const Horario = require('./Horario') +const Mesa = require('./Mesa') +const Salon = require('./Salon') class Prestamo extends Model {} Prestamo.init( @@ -27,6 +33,59 @@ Prestamo.init( type: DataTypes.BOOLEAN, allowNull: false, }, + idUsuario: { + type: DataTypes.INTEGER, + references: { + model: Usuario, + key: 'idUsuario', + }, + allowNull: false, + }, + idOperadorEntrega: { + type: DataTypes.INTEGER, + references: { + model: Operador, + key: 'idOperador', + }, + }, + idOperadorRegreso: { + type: DataTypes.INTEGER, + references: { + model: Operador, + key: 'idOperador', + }, + }, + idEquipo: { + type: DataTypes.INTEGER, + references: { + model: Equipo, + key: 'idEquipo', + }, + }, + idHorario: { + type: DataTypes.INTEGER, + references: { + model: Horario, + key: 'idHorario', + }, + allowNull: false, + }, + idMesa: { + type: DataTypes.INTEGER, + references: { + model: Mesa, + key: 'idMesa', + }, + allowNull: false, + }, + idSalon: { + type: DataTypes.INTEGER, + references: { + model: Salon, + key: 'idSalon', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/Reporte.js b/db/tables/Reporte.js index b954940..b5524f9 100644 --- a/db/tables/Reporte.js +++ b/db/tables/Reporte.js @@ -1,5 +1,6 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const Prestamo = require('./Prestamo') class Reporte extends Model {} Reporte.init( @@ -15,6 +16,14 @@ Reporte.init( type: DataTypes.STRING(100), allowNull: false, }, + idPrestamo: { + type: DataTypes.INTEGER, + references: { + model: Prestamo, + key: 'idPrestamo', + }, + allowNull: false, + }, }, { sequelize, diff --git a/db/tables/Salon.js b/db/tables/Salon.js index 6c08a1b..64f1b3f 100644 --- a/db/tables/Salon.js +++ b/db/tables/Salon.js @@ -1,5 +1,6 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const Status = require('./Status') class Salon extends Model {} Salon.init( @@ -15,11 +16,20 @@ Salon.init( type: DataTypes.STRING(50), allowNull: false, }, + idStatus: { + type: DataTypes.INTEGER, + references: { + model: Status, + key: 'idStatus', + }, + allowNull: false, + }, }, { sequelize, modelName: 'Salon', tableName: 'salon', + timestamps: false, } ) diff --git a/db/tables/Status.js b/db/tables/Status.js index f1e4a05..ba31b95 100644 --- a/db/tables/Status.js +++ b/db/tables/Status.js @@ -20,6 +20,7 @@ Status.init( sequelize, modelName: 'Status', tableName: 'status', + timestamps: false, } ) diff --git a/db/tables/TipoCarrito.js b/db/tables/TipoCarrito.js index 1fdb42d..acb6224 100644 --- a/db/tables/TipoCarrito.js +++ b/db/tables/TipoCarrito.js @@ -20,6 +20,7 @@ TipoCarrito.init( sequelize, modelName: 'TipoCarrito', tableName: 'tipo_carrito', + timestamps: false, } ) diff --git a/db/tables/TipoMulta.js b/db/tables/TipoMulta.js index 1b2a5cf..f0966b1 100644 --- a/db/tables/TipoMulta.js +++ b/db/tables/TipoMulta.js @@ -20,6 +20,7 @@ TipoMulta.init( sequelize, modelName: 'TipoMulta', tableName: 'tipo_multa', + timestamps: false, } ) diff --git a/db/tables/TipoOperador.js b/db/tables/TipoOperador.js index e1b351a..32ce97c 100644 --- a/db/tables/TipoOperador.js +++ b/db/tables/TipoOperador.js @@ -20,6 +20,7 @@ TipoOperador.init( sequelize, modelName: 'TipoOperador', tableName: 'tipo_operador', + timestamps: false, } ) diff --git a/db/tables/TipoUsuario.js b/db/tables/TipoUsuario.js index 21db829..6e0547d 100644 --- a/db/tables/TipoUsuario.js +++ b/db/tables/TipoUsuario.js @@ -20,6 +20,7 @@ TipoUsuario.init( sequelize, modelName: 'TipoUsuario', tableName: 'tipo_usuario', + timestamps: false, } ) diff --git a/db/tables/Usuario.js b/db/tables/Usuario.js index 17e9c6c..bf0fa84 100644 --- a/db/tables/Usuario.js +++ b/db/tables/Usuario.js @@ -1,5 +1,7 @@ const { DataTypes, Model } = require('sequelize') const sequelize = require('../../config/sequelize.conf') +const CarreraPlantel = require('./CarreraPlantel') +const TipoUsuario = require('./TipoUsuario') class Usuario extends Model {} Usuario.init( @@ -46,6 +48,22 @@ Usuario.init( type: DataTypes.BOOLEAN, defaultValue: false, }, + idCarreraPlantel: { + type: DataTypes.INTEGER, + references: { + model: CarreraPlantel, + key: 'idCarreraPlantel', + }, + allowNull: false, + }, + idTipoUsuario: { + type: DataTypes.INTEGER, + references: { + model: TipoUsuario, + key: 'idTipoUsuario', + }, + allowNull: false, + }, }, { sequelize, diff --git a/package.json b/package.json index b8fe8ab..080ccc5 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "db:test": "node ./config/test" + "db:test": "node ./config/test", + "db:install": "node ./db/install" }, "repository": { "type": "git",