Uecko_ERP_FactuGES_sync/README.md
2025-11-30 19:28:44 +01:00

127 lines
2.0 KiB
Markdown

# Factuges Sync
Proceso ETL para sincronizar datos desde una base de datos Legacy hacia MariaDB.
Incluye dos modos de sincronización:
- `factuges`
- `verifactu`
En desarrollo **no se utiliza Docker**.
En producción **sí se utiliza Docker + cron**.
---
# 1. Requisitos previos
- Python 3.11 o superior
- Git instalado
- Acceso a las bases de datos necesarias para las pruebas
- (Opcional) Librerías/cliente de Firebird si la BD legacy las requiere
---
# 2. Clonar el repositorio
```bash
git clone <URL_DEL_REPO> factuges-sync
cd factuges-sync
```
# 3. Crear y activar entorno virtual
```bash
python3 -m venv venv
source venv/bin/activate
```
En Windows:
```powershell
venv\Scripts\activate
```
# 4. Instalar dependencias del proyecto
Este proyecto se instala mediante setup.cfg + pyproject.toml.
```bash
pip install --upgrade pip
pip install -e .
```
Esto crea el comando factuges-sync disponible en tu entorno virtual.
# 5. Configurar entorno de desarrollo
El código carga automáticamente:
* environment/dev.env cuando ENV=dev
* Variables del contenedor en producción (ENV=production)
Por tanto, **en desarrollo**:
```bash
export ENV=dev
```
(En Windows: set ENV=dev)
Revisa/edita:
```bash
environment/dev.env
```
Ejemplo:
```ini
DB_HOST=localhost
DB_USER=root
DB_PASS=123
SYNC_INTERVAL_MINUTES=5
```
# 6. Ejecutar el job en desarrollo
Puedes ejecutar cualquiera de los dos modos.
**Opción A: usando el CLI**
```bash
# Modo FACTUGES
factuges-sync factuges
# Modo VERIFACTU
factuges-sync verifactu
```
**Opción B: llamando directamente a los módulos Python**
```bash
python -m app.sync_factuges_main
python -m app.sync_verifactu_main
```
# 7. Logs en desarrollo
Si el proyecto escribe logs en logs/:
```bash
tail -f logs/job.log
```
# 8. Producción (resumen)
En producción se usa Docker y cron.
Build:
```bash
./scripts/build.sh <company>
```
Cron job:
```bash
*/5 * * * * docker run --rm -e ENV=production -e SYNC_MODE=factuges myimage:latest
```