Repolode
k1LoW

k1LoW/tbls

CLI de Go que genera documentación Markdown GFM a partir del esquema de una base de datos activa, con diff, lint y diagramas ER para CI.

Estrellas
4,364
Forks
217
Issues abiertos
57
Último commit
hace 8 días

¿Qué es?

tbls se conecta a una base de datos, lee su esquema y genera un documento Markdown navegable con tablas, columnas, índices, restricciones y relaciones. También puede crear diagramas ER en SVG, PNG, JPG o Mermaid, y exportar el esquema a formatos como DOT, PlantUML, JSON, YAML y Excel.

Además de generar documentación, tbls permite comprobar esquemas. El comando diff compara una base de datos activa con el documento generado o con otra base de datos, y el comando lint aplica reglas configurables, como exigir comentarios en las columnas, limitar la cantidad de columnas y comprobar que haya índices en las claves foráneas. El comando coverage indica qué parte del esquema está documentada.

tbls se distribuye como un único binario y es compatible con PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, BigQuery, Snowflake, Redshift, Cloud Spanner, DynamoDB, MongoDB, ClickHouse y Databricks, entre otras bases de datos. La configuración se guarda en un archivo .tbls.yml, por lo que resulta sencillo ejecutarlo en pipelines de CI.

Funciones clave

  • 01Genera documentación Markdown compatible con GitHub a partir del esquema de una base de datos.
  • 02Crea diagramas ER en formato SVG, PNG, JPG o Mermaid.
  • 03Compara una base de datos con su documentación o con otra base de datos.
  • 04Aplica reglas configurables a los esquemas, como exigir comentarios y limitar la cantidad de columnas.
  • 05Mide la cobertura de la documentación de tablas y columnas.
  • 06Es compatible con numerosas bases de datos, como PostgreSQL, MySQL, SQLite, BigQuery y MongoDB.

Casos de uso

  • Mantener en el repositorio un documento del esquema de la base de datos y actualizarlo junto con los cambios en el código.
  • Hacer que las compilaciones de CI fallen cuando los cambios en el esquema incumplan las reglas de documentación o lint.
  • Comparar una base de datos de producción con una de staging o con una copia local.
  • Exportar definiciones de esquemas a Excel o PlantUML para revisarlas con personas que no desarrollan.

Inicio rápido

  1. 1

    Instala mediante Homebrew

    brew install tbls
  2. 2

    Documenta una base de datos con un solo comando

    tbls doc postgres://dbuser:dbpass@hostname:5432/dbname

Antes de usarlo

  • Documenta una base de datos activa, por lo que necesitas una conexión accesible a la base de datos y credenciales.

En colecciones

Temas

Preguntas frecuentes

¿Qué es tbls?
CLI de Go que genera documentación Markdown GFM a partir del esquema de una base de datos activa, con diff, lint y diagramas ER para CI. tbls se conecta a una base de datos, lee su esquema y genera un documento Markdown navegable con tablas, columnas, índices, restricciones y relaciones. También puede crear diagramas ER en SVG, PNG, JPG o Mermaid, y exportar el esquema a formatos como DOT, PlantUML, JSON, YAML y Excel.
¿tbls es gratuito? ¿Qué licencia tiene?
tbls es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿tbls sigue mantenido?
Mantenimiento activo. El último commit de tbls fue el 15 oct 2026.
¿Para qué puedo usar tbls?
Mantener en el repositorio un documento del esquema de la base de datos y actualizarlo junto con los cambios en el código. Hacer que las compilaciones de CI fallen cuando los cambios en el esquema incumplan las reglas de documentación o lint. Comparar una base de datos de producción con una de staging o con una copia local. Exportar definiciones de esquemas a Excel o PlantUML para revisarlas con personas que no desarrollan.
¿Cómo se instala tbls?
Instala mediante Homebrew: brew install tbls Documenta una base de datos con un solo comando: tbls doc postgres://dbuser:dbpass@hostname:5432/dbname
¿Dónde consigo tbls?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/k1LoW/tbls

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados