Oracle Schema Extractor CLI - Genera JSON compatible con Atlas OriginType=BBDD
npm install @gzl10/osx-clibash
npm install -g @gzl10/osx-cli
`
$3
Agregar %APPDATA%\npm al PATH del sistema, o ejecutar antes de usar:
`powershell
$env:PATH += ";$env:APPDATA\npm"
`
Configuracion Rapida
Crea estos archivos en tu home (~ o %USERPROFILE%):
~/.env - Credenciales Oracle:
`ini
USER=tu_usuario
PWD=tu_password
`
~/tnsnames.ora - Conexiones Oracle:
`text
PROD_DB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=servidor)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))
`
Oracle Instant Client
Requerido para bases de datos con autenticacion moderna. El CLI lo detecta automaticamente en:
- Windows: C:\oracle\instantclient_*
- Linux/macOS: /opt/oracle/instantclient_*
Descargar Oracle Instant Client
Uso
`bash
Uso basico (credenciales desde ~/.env)
osx extract TABLA --tns PROD_DB
Multiples tablas
osx extract TABLA1,TABLA2,TABLA3 --tns PROD_DB
Wildcards: * (multiples caracteres), ? (un caracter)
osx extract "D21*" --tns PROD_DB -o --pretty
osx extract "A200?100" --tns PROD_DB -o
Guardar en archivo (nombre auto: TABLA.json o extractYYYYMMDD.json)
osx extract TABLA --tns PROD_DB -o --pretty
Guardar con nombre especifico
osx extract TABLA --tns PROD_DB -o output.json
Credenciales explicitas
osx extract TABLA --tns PROD_DB -u USER -p PASS
Easy Connect (sin tnsnames.ora)
osx extract TABLA --tns "servidor:1521/servicio" -u USER -p PASS
Extraer de un schema diferente al usuario
osx extract TABLA --tns PROD_DB --schema OWNER_SCHEMA
`
$3
Los wildcards permiten extraer multiples tablas con un patron:
- * - coincide con cualquier cantidad de caracteres
- ? - coincide con un solo caracter
Cuando se usan wildcards, se aplica automaticamente un delay de 100ms entre tablas para no saturar la base de datos. Puedes ajustarlo con -d.
`bash
Todas las tablas que empiezan por D21
osx extract "D21*" --tns PROD_DB -o --pretty
Con delay personalizado (500ms)
osx extract "D21*" --tns PROD_DB -o --pretty -d 500
`
Opciones
| Opcion | Descripcion |
| ------ | ----------- |
| -t, --tns | Alias TNS o Easy Connect (host:port/service) |
| -s, --schema | Schema Oracle (default: mismo que usuario) |
| -u, --user | Usuario (o env: OSX_USER, o ~/.env USER) |
| -p, --password | Password (o env: OSX_PASSWORD, o ~/.env PWD) |
| -o, --output | Fichero salida (sin nombre: auto, 1 tabla=TABLA.json, N tablas=extractYYYYMMDD.json) |
| --pretty | JSON formateado |
| -d, --delay | Delay entre tablas (ms) |
Prioridad de Credenciales
1. Flags de linea de comandos (-u, -p)
2. Variables de entorno (OSX_USER, OSX_PASSWORD)
3. Archivo ~/.env (USER, PWD`)