SYNCDBSY es un microservicio desarrollado en Python 🐍. Permite traspasar el resultado de una consulta SQL realizada en MSSQL a una base de datos MySQL.
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.
git clone http://..
cd syncdbsy
cp /build/{syncdb.env-sample,syncdb.env}
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
.
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.
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.
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