luigdima / syncdbsy

SYNCDBSY es un microservicio desarrollado en Python. Permite traspasar el resultado de una consulta SQL realizada en MSSQL a una base de datos MySQL.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SYNCDBSY (Microsoft SQL server a MySQL)

SYNCDBSY es un microservicio desarrollado en Python 🐍. Permite traspasar el resultado de una consulta SQL realizada en MSSQL a una base de datos MySQL.


⚠️ ATENCIÓN
Hay que tener en cuenta que cuando se realiza el traslado hacía la base de datos de MySQL las tablas de destino son eliminadas, para luego, ser nuevamente creada.


🚀 ARRANQUE E INICIO

CLONE Y COPIA DE CONFIG

git clone http://..
cd syncdbsy
cp /build/{syncdb.env-sample,syncdb.env}

VARIABLES DE ENTORNO

Las variables de entorno son bastantes descriptivas. Por lo tanto, no hace falta poner ejemplos.

  • DB_MSSQL_SERVER =
  • DB_MSSQL_USER =
  • DB_MSSQL_PASSWORD =
  • DB_MSSQL_DB =
  • DB_MYSQL_SERVER =
  • DB_MYSQL_USER =
  • DB_MYSQL_PASSWORD =
  • DB_MYSQL_DB =
  • TIMECRON = (default: 00:30)
  • DIRSQL = (default: csql)

Deberemos de completar correctamente los datos en el archivo /build/syncdb.env.

🔧 ARCHIVOS SQL DE CONSULTAS

TIPO DE ARCHIVOS Y FORMATO

El script podrá leer todos los archivos con extensión .sql que se encuentre dentro del directorio definido en DIRSQL por defecto /src/csql/.

├── src
│   ├── csql
│   │   ├── mitabla_destino.sql

Todo tipo de archivo con extensión distinta a .sql será omitido.

El archivo mitabla_destino.sql contiene la consulta que se realizará a la base de datos de Microsoft (MSSQL). Un ejemplo de consulta es la siguiente:

SELECT
    ARTICULOS.CAS AS CAS,
    DESCRIPCION,
    SECCION,
    PESO
FROM
    ARTICULOS
    LEFT JOIN PRECIOS
ON
    ARTICULOS.CAS=PRECIOS.CAS

La tabla de destino hacía MySQL será el nombre del fichero, en este caso mitabla_destino.sql. Los atributos de la tabla serán los indicados en el SELECT de la consulta, con la singularidad que si introducimos un AS en el atributo este, será el nombre del atributo destino.

REINICIO MANUAL

Este servicio sincronizará la tabla A con la tabla B cada día a una hora concreta. Esta hora se fija mediante la variable de entorno TIMECRON. Si queremos lanzar nuevamente la sincronización no deberemos de volver a lanzar el contenedor, basta con eliminar el fichero init que se encuentra en el mismo directorio de las consultas SQL. Al eliminar este fichero al minuto se volverá a iniciar el proceso de sincronización.

🐳 BUILD CON DOCKER-COMPOSE

Para ejecutar el entorno es tan sencillo como ejecutarlo con docker-compose dentro del directorio del proyecto.

docker-compose up --build --force

Para poder visualizar los logs del servicio es tan sencillo como realizar lo siguiente:

docker-compose logs

About

SYNCDBSY es un microservicio desarrollado en Python. Permite traspasar el resultado de una consulta SQL realizada en MSSQL a una base de datos MySQL.


Languages

Language:Python 98.7%Language:Dockerfile 1.3%