127 lines
2.0 KiB
Markdown
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
|
|
```
|