refactor: add comprehensive README documentation for go-migrate tool
This commit is contained in:
92
README.md
Normal file
92
README.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# go-migrate
|
||||
|
||||
Migrador de datos entre SQL Server y PostgreSQL con procesamiento en paralelo.
|
||||
|
||||
## Compilar
|
||||
|
||||
```bash
|
||||
go build -o go-migrate ./cmd/go_migrate
|
||||
```
|
||||
|
||||
## Uso
|
||||
|
||||
```bash
|
||||
./go-migrate [opciones] [<ruta-config>]
|
||||
```
|
||||
|
||||
### Opciones
|
||||
|
||||
| Flag | Descripción |
|
||||
|------|-------------|
|
||||
| `-config <path>` | Ruta al archivo de configuración YAML. También se puede pasar como argumento posicional. Si no se indica, se busca `config.yaml`. |
|
||||
| `-validate` | Compara la cantidad de filas entre origen y destino por cada job. No migra datos. |
|
||||
| `-dry-run` | Valida conexiones, acceso a storage (si aplica) y cuenta filas en origen sin migrar. |
|
||||
|
||||
### Ejemplos
|
||||
|
||||
```bash
|
||||
# Migrar con config.yaml por defecto
|
||||
./go-migrate
|
||||
|
||||
# Usar un archivo de configuración específico
|
||||
./go-migrate -config produccion.yaml
|
||||
|
||||
# Validar que origen y destino tengan la misma cantidad de filas
|
||||
./go-migrate -validate -config produccion.yaml
|
||||
|
||||
# Verificar conectividad sin migrar
|
||||
./go-migrate -dry-run -config produccion.yaml
|
||||
```
|
||||
|
||||
## Configuración
|
||||
|
||||
La herramienta lee credenciales y parámetros desde variables de entorno o un archivo `.env`.
|
||||
|
||||
### Variables clave
|
||||
|
||||
| Variable | Descripción |
|
||||
|----------|-------------|
|
||||
| `SOURCE_DB_URL` | URL de conexión a la base de datos origen (o `SOURCE_DB_HOST`, `SOURCE_DB_NAME`, `SOURCE_DB_USER`, `SOURCE_DB_PWD`). |
|
||||
| `TARGET_DB_URL` | URL de conexión a la base de datos destino (o `TARGET_DB_HOST`, `TARGET_DB_NAME`, `TARGET_DB_USER`, `TARGET_DB_PWD`). |
|
||||
| `LOG_LEVEL` | Nivel de log: `DEBUG`, `INFO`, `WARN`, `ERROR` (por defecto: `INFO`). |
|
||||
|
||||
Para migrar datos binarios a Azure Blob, también se requieren `AZ_STORAGE_ENABLED`, `AZ_ACCOUNT_NAME`, `AZ_CONTAINER`, `AZ_ACCOUNT_KEY`.
|
||||
|
||||
### Archivo de migración (YAML)
|
||||
|
||||
Define los jobs de migración. Ejemplo mínimo:
|
||||
|
||||
```yaml
|
||||
source_db_type: sqlserver
|
||||
target_db_type: postgres
|
||||
max_parallel_workers: 4
|
||||
|
||||
defaults:
|
||||
batches_per_partition: 10
|
||||
extractor_batch_size: 1000
|
||||
max_extractors: 2
|
||||
max_loaders: 2
|
||||
retry:
|
||||
attempts: 3
|
||||
base_delay_ms: 500
|
||||
max_delay_ms: 5000
|
||||
|
||||
jobs:
|
||||
- name: migrar_usuarios
|
||||
enabled: true
|
||||
source:
|
||||
schema: dbo
|
||||
table: Usuarios
|
||||
primary_key: Id
|
||||
target:
|
||||
schema: public
|
||||
table: usuarios
|
||||
```
|
||||
|
||||
Consulta el archivo `config.yaml` de tu entorno para ver los jobs disponibles y sus parámetros específicos.
|
||||
|
||||
## Modos de ejecución
|
||||
|
||||
- **Migración** (por defecto): extrae, transforma y carga datos en paralelo.
|
||||
- **Validación** (`-validate`): cuenta y compara filas entre origen y destino.
|
||||
- **Dry run** (`-dry-run`): verifica conexiones y muestra la cantidad de filas en origen.
|
||||
Reference in New Issue
Block a user