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.
//con npm
npm i @gamalielmh921230/mysqlsync
//con yarn
yarn add @gamalielmh921230/mysqlsync
- isConnected -> Indica si esta conectado con la base de datos
- cDatabase -> Nombre de la base de datos
- 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
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
- 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
- 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()
- EnumActions -> objeto con las acciones posibles en la sincronizacion. {CREATE_TABLE: 1,ALTER_TABLE: 2,DROP_TABLE: 3}