Saltar a contenido

El proyecto

Qué crea tai-sql init

mi_proyecto/
├── .taisqlproject          # nombre del proyecto y schema por defecto
├── pyproject.toml          # dependencias del CLIENTE GENERADO
├── README.md
├── __init__.py
├── schemas/
│   └── public.py
├── views/
│   └── public/
└── diagrams/

El .taisqlproject es un JSON minúsculo, y es lo que marca la raíz del proyecto:

{
  "name": "mi_proyecto",
  "default_schema": "public"
}
Opción de init Qué hace
-n, --name Nombre del proyecto (y del directorio).
-s, --schema Nombre del primer schema.
--install / --no-install Instalar las dependencias al terminar, o no.

Dónde se resuelven las rutas

Los comandos buscan el .taisqlproject hacia arriba desde donde los ejecutas, y de ahí salen schemas/ y views/.

Los output_dir son relativos al directorio desde el que ejecutas el comando

No al .taisqlproject. Con output_dir='database', el cliente del schema public acaba en database/public/ si ejecutas desde la raíz del proyecto, que es lo que debes hacer.

Varios schemas en un proyecto

Un proyecto puede tener varios ficheros en schemas/, cada uno con su datasource(), sus generadores y —si hace falta— su propia base de datos.

tai-sql new-schema ventas            # crea schemas/ventas.py y views/ventas/
tai-sql set-default-schema ventas    # el que usarán los comandos sin --schema
tai-sql push -s ventas               # actuar sobre uno concreto
tai-sql info                         # ver cuáles hay y cuál es el default

Salida típica de tai-sql info:

📁 Información del proyecto:
   Nombre: mi_proyecto
   Directorio: /home/ana/mi_proyecto
   Schema por defecto: public

📄 Schemas disponibles:
   • auth
   • public (✅ default, 📌 current)
   • ventas

Cada schema genera su propio paquete de cliente y se sincroniza por separado: un push sobre uno no toca los objetos del otro. Las relaciones entre schemas distintos no se declaran: son dos bases de datos lógicas separadas.

Qué versionar en git

Va al repositorio No va
schemas/*.py — la fuente de verdad El output_dir del cliente generado1
views/**/*.sql Los diagramas generados
.taisqlproject, pyproject.toml El .env con las credenciales

El schema se commitea, así que nunca escribas una contraseña en él: para eso está env().


  1. Es una decisión de equipo. Versionarlo hace que un pip install del proyecto traiga el cliente sin necesidad de tai-sql; no versionarlo evita diffs enormes en cada push. Si lo versionas, que sea siempre el resultado de tai-sql generate, nunca editado a mano. ↩