npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@gamalielmh921230/mysqlsync

v1.0.10

Published

[![alt text](https://www.paypalobjects.com/es_XC/MX/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HJT3RJKJ44EWQ&source=url ) # Como Se Instala ```javascript //con npm npm i @gamalielmh921230/mysqlsy

Downloads

3

Readme

mysqlSync

mysqlSync es una herramienta para sincronizar la esturctura de una base de datos apartir de otra añadiendo o eliminando tablas,campos,funciones,procedimientos dependendiendo las diferencias que se encuentren entre una y otra.

Apoyar el proyecto

alt text

Como Se Instala

//con npm
npm i @gamalielmh921230/mysqlsync 
//con yarn
yarn add @gamalielmh921230/mysqlsync

Clases Que La Componen

Mysql

es un envoltorio para el modulo de mysql de node que añade soporta para promesas

Propiedades

  • isConnected -> Indica si esta conectado con la base de datos
  • cDatabase -> Nombre de la base de datos

Metodos

  • connect(): establece la conexion con la base de datos
  • query(sql,args): ejecuta las sentencias de sql
  • release(): Cierra la conexion con la base de datos
  • beginTransaction(): Comienza una transaccion
  • commit(): Completa la transaccion
  • rollback(): Concela la transaccion
  • escape(str): Escapa los caracteres de un String

Como se Usa

const {Mysql} = require('@gamalielmh921230/mysqlsync')

const Cnn = new Mysql({
    host: "localhost", 
    user: "root", 
    password: "12345",
    database: "mydb",
    timeout: 60000
})

await Cnn.connect()
const [result]= await Cnn.query("SELECT CURDATE() AS FECHA")
console.log(result.FECHA)//--> imprime la fecha del servidor

SyncDb

es una clase que se encarga de compara y sincronizar la estructura de dos bases de datos

Propiedades

  • TablesDiff -> Objeto Con las diferencias encontradas en las tablas al ejecutar metodo Compare
  • ViewsDiff -> Objeto Con las diferencias encontradas en las vistas al ejecutar metodo Compare
  • ProceduresDiff -> Objeto Con las diferencias encontradas en los procedimientos al ejecutar metodo Compare
  • FunctionsDiff -> Objeto Con las diferencias encontradas en las funciones al ejecutar metodo Compare

Metodos

  • Compare(): Compra la estructura de las bases de datos y obtiene las diferencias
  • Sync(): Sincroniza la estructura de las bases de datos aplicando las diferencias encontradas(si no se llamo al metodo Compare antes lo llama internamente).
  • CopyTable(TableName, SourceSchema, TargetSchema, lData=false): Copia una tabla de un schema a otro con o sin datos
  • ReleaseConections(): Cierra la conexion con la base de datos
const {Mysql,SyncDb} = require('@gamalielmh921230/mysqlsync')

//se crea la conexion con la base de datos que recibira los cambios
const CnnClient = new Mysql({
    host: "localhost", 
    user: "root", 
    password: "12345",
    database: "mydb_client",
    timeout: 60000
})

//se conecta con la base de datos modelo
const CnnMaestro = new Mysql({
    host: "localhost", 
    user: "root", 
    password: "12345",
    database: "mydb_model",
    timeout: 60000
})

//se sincronizan las bases de datos
const sync = new SyncDb(CnnClient,CnnMaestro)
await sync.Sync()
await sync.ReleaseConections()

/*
    tabla en base de datos modelo
    --------------------------
    |id | campo1 | campoNuevo|
    --------------------------
    --------------------------

    tabla en base de datos cliente
    -------------
    |id | campo1|
    -------------
    | 1 | hola  |
    -------------

    resultado despues del proceso 
    en base de datos del cliente
    --------------------------
    |id | campo1 | campoNuevo|
    -------------------------- 
    | 1 | hola  |            |
    --------------------------
*/

//ejemplo para copiar una tabla
// se conecta con el primer servidor
const oCnn = new Mysql({
    host: "localhost", 
    user: "root", 
    password: "****",
    port:3306,
    timeout: 60000
})

//se copian tablas dentro de la misma conexion(pueden ser diferentes conexiones)
const sync = new SyncDb(oCnn, oCnn)
await sync.CopyTable('mytbl1','mydborigen','mydbdestino',lCopiarDatos)//se copia con datos
await sync.CopyTable('mytbl2','mydborigen','mydbdestino')//se copia sin datos   
await sync.ReleaseConections()

ConstansSync

Propiedades

  • EnumActions -> objeto con las acciones posibles en la sincronizacion. {CREATE_TABLE: 1,ALTER_TABLE: 2,DROP_TABLE: 3}