-
Notifications
You must be signed in to change notification settings - Fork 0
Backend.Persistencia.
Comenzando a persistir ...
-
Instalación:
npm install --save sequelize
npm sequelize --version
➡️ 6.14.5npm install mysql2
npm install --save-dev sequelize-cli
2.Otorgar privilegios a db:
mysql> create user 'nat' identified by 'miPassword';
mysql> grant all privileges on combapp.* to nat;
3.Cliente Sequelize:
Para crear una entidad por ejemplo Venta la defino dentro de backend de la siguiente manera:
"use strict";
const { Sequelize, Op, Model } = require("sequelize");
const {Cliente} = require("./sequelizeConnection")
module.exports = function (sequelize, DataTypes) {
const Venta = sequelize.define(
"Venta",
{
fecha: DataTypes.DATE,
facturado: DataTypes.BOOLEAN,
saldoCobrado: DataTypes.INTEGER,
montoSinCobrar: DataTypes.INTEGER,
tipoDePago: DataTypes.STRING,
},
{
tableName: "Ventas",
modelName: "Venta",
}
);
return Venta;
};
Integro Venta al archivo SequelizeConnection.js
'use strict'
const Sequelize = require('sequelize');
const VentaModel=require('./venta');
const DBURL='mysql://nat:miPassword@localhost:3306/combapp'
let sequelize=new Sequelize(DBURL,{
operatorsAliases:'false',
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000
}
});
var models={}
models=sequelize
models=Sequelize
const Venta= VentaModel(sequelize,Sequelize);
sequelize.authenticate()
.then(() => {
console.log('BD_CONECTADA!!');
})
.catch(err => {
console.error('ERROR,_BD_NO_CONECTADA:', err);
});
sequelize.sync()
.then(() => {
console.log(`Base de datos y tablas creadas, modelos sincronizados!`)
console.log("SOY VENTA SYNC:",Venta=== sequelize.models.Venta);
})
module.exports = {
sequelize,
Venta
};
Luego ejecuto en consola:
Aclaración: En este proyecto solo se trabajan las migraciones en una primera instancia para modificar fácilmente la base de datos, no es el objetivo de este software las migraciones,sin embargo sí los seeders para cargar la base de datos. ❗ ❕ 👍
npx sequelize-cli migration:generate --name Venta
➡️Si se quiere migrar la entidad Venta.
npx sequelize-cli db:migrate
➡️ si se quiere migrar todos las entidades.
npx sequelize-cli seed:generate --name Cliente
Ahora se edita el archivo que se generó xxxxxxxxxxxx-Cliente.js
para insertar sus datos a la tabla Ventas:
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.bulkInsert('Cliente', [{
nombre: 'Brandon',
apellido: 'Adam',
cuit:'27350268263',
razonSocial:'developer',
telefono:'2478302010',
email:'b_adam@gmail.com',
}], {});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('Venta', null, {});
}
};
Luego comprometer el archivo a la base de datos:
npx sequelize-cli db:seed:all
...y en la base de datos: