https://github.com/fvarrui/dbtools
:toolbox: Conjunto de herramientas para bases de datos
https://github.com/fvarrui/dbtools
analyzer database docs mapper schema sql tools
Last synced: 2 months ago
JSON representation
:toolbox: Conjunto de herramientas para bases de datos
- Host: GitHub
- URL: https://github.com/fvarrui/dbtools
- Owner: fvarrui
- License: gpl-3.0
- Created: 2025-03-07T14:56:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-26T23:15:58.000Z (8 months ago)
- Last Synced: 2025-10-27T01:13:07.869Z (8 months ago)
- Topics: analyzer, database, docs, mapper, schema, sql, tools
- Language: Python
- Homepage:
- Size: 220 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DBTools
Conjunto de comandos implementados en Python para facilitar tareas relacionadas con bases de datos relacionales:
- [`dbanalyzer`](src/dbanalyzer/README.md): Analiza la estructura de una base de datos usando IA, obteniendo información semántica de las tablas y columnas.
- [`dbchecker`](src/dbchecker/README.md): Verifica la integridad de una base de datos. [Próximamente]
- [`dbmapper`](src/dbmapper/README.md): Crea mapas de entre esquemas de bases de datos para facilitar la migración de datos.
- [`dbsequel`](src/dbsequel/README.md): Genera consultas SQL para un esquema dado en lenguaje natural utilizando IA. [Próximamente]
- [`dbschema`](src/dbschema/README.md): Genera un esquema de la base de datos en formato JSON.
- [`dbutils`](src/dbutils/README.md): Utilidades de soporte de `dbtools` para crear y gestionar ficheros de configuración con las conexiones a las bases de datos.
- [`ddrsearch`](src/ddrsearch/README.md): Extrae información de un DDR (Data Dictionary Report) de una base de datos Oracle.
> 😱 Útil para no amargarte la vida.
## ¿Cómo se instala?
Para instalar **dbtools** en tu sistema, puedes hacerlo desde el repositorio de GitHub con el comando `pip` (debes ejecutarlo como Administrador en Windows o con `sudo` en Linux):
```bash
pip install git+https://github.com/fvarrui/dbtools.git
```
> 🐍 Por supuesto, debes tener Python instalado en tu sistema.
Si ya has instalado alguna versión de `dbtools`, puedes actualizarlo con el siguiente comando:
```bash
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/fvarrui/dbtools.git
```
## ¿Cómo se usa?
Cada comando tiene su propia ayuda, que se puede obtener ejecutando el comando con la opción `--help`.
```bash
{db.command} --help
```
> ℹ️ Remplaza `{db.command}` por el nombre del comando que quieras usar, por ejemplo `dbanalyzer`, `dbchecker`, etc.
Para obtener más información sobre cada comando, consultar la documentación correspondiente.
Las conexiones a la base de datos se configuran en el archivo de configuración `$HOME/.dbtools/dbtools.ini` y usando la opción `--db-name`, o bien proporcionando la cadena de conexión con la opción `--db-url` en la línea de comandos.
Ejemplo de archivo de configuración `dbtools.ini`:
```ini
[database]
type=
host=
port=
username=
password=
database=
driver=
trusted_connection=
```
> [!WARNING]
> - Si no se proporciona `port`, se usará el puerto por defecto para el tipo de base de datos especificado.
> - Si no se proporciona `password` en el archivo de configuración, se solicitará al usuario.
> - Las opciones `driver` y `trusted_connection` son específicas de SQL Server.
```bash
{db.command} --db-name database
```
ó
```bash
{db.command} --db-url postgresql://user:password@host:port/database
```
Siendo `database` el nombre de la sección en el archivo de configuración.
### Cadenas de conexión
Cadenas de conexión para los distintos sistemas gestores de bases de datos soportados:
| Sistema | Cadena de conexión |
| ---------------------------------------------- | -------------------------------------------------------------------------- |
| **PostgreSQL** | `postgresql://{USER}:{PASSWORD}@{SERVER}:{PORT}/{DB_NAME}` |
| **MySQL** | `mysql://{USER}:{PASSWORD}@{SERVER}:{PORT}/{DB_NAME}` |
| **SQL Server (SQL Server Authentication)** | `mssql://{USER}:{PASSWORD}@{SERVER}:{PORT}/{DB_NAME}?driver={DRIVER}` |
| **SQL Server (Windows Authentication) [SSPI]** | `mssql://{SERVER}:{PORT}/{DB_NAME}?driver={DRIVER}&trusted_connection=yes` |
## Para desarrolladores
Si quieres colaborar en el desarrollo de **dbtools**, puedes hacerlo de la siguiente manera.
Clonar el repositorio y entrar en el directorio:
```bash
git clone https://github.com/fvarrui/dbtools.git
cd dbtools
```
Crear un entorno virtual:
```bash
python -m venv venv
```
Activar el entorno virtual:
```bash
venv\Scripts\activate
```
Instalar el paquete en modo de edición, de modo que se crearán los scripts del paquete y se instalarán las dependencias en el entorno virtual:
```bash
pip install -e .
```
¡Y a programar!
```bash
code .
```
## ¿Cómo contribuir?
¡Tus PRs son bienvenidos!
---
Made with ❤️ by [fvarrui](https://github.com/fvarrui)