@gzl10/osx-cli
v4.0.10
Published
Oracle Schema Extractor CLI - Genera JSON compatible con Atlas OriginType=BBDD
Maintainers
Readme
@gzl10/osx-cli
CLI para extraer esquemas de tablas Oracle y generar JSON compatible con Atlas.
Instalacion
npm install -g @gzl10/osx-cliWindows: Configurar PATH
Agregar %APPDATA%\npm al PATH del sistema, o ejecutar antes de usar:
$env:PATH += ";$env:APPDATA\npm"Configuracion Rapida
Crea estos archivos en tu home (~ o %USERPROFILE%):
~/.env - Credenciales Oracle:
USER=tu_usuario
PWD=tu_password~/tnsnames.ora - Conexiones Oracle:
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
# 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_SCHEMAWildcards
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.
# 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 500Opciones
| 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
- Flags de linea de comandos (
-u,-p) - Variables de entorno (
OSX_USER,OSX_PASSWORD) - Archivo
~/.env(USER,PWD)
Requisitos
- Node.js >= 20
- Oracle Instant Client (para BD con auth moderna)
- Oracle Database 11g+
Licencia
MIT
