Files
gkachele-saas/memoria/COMO_CONECTAR_DB.md
2026-01-17 11:40:17 +01:00

183 lines
4.1 KiB
Markdown

# 🔌 CÓMO CONECTARSE A LA BASE DE DATOS DE CLIENTES
**GKACHELE™ - Guía de Conexión a Base de Datos**
© 2025 GKACHELE™. Todos los derechos reservados.
## 📍 Ubicación de la Base de Datos
La base de datos **`main.db`** contiene TODOS los clientes (sistema multi-tenant).
### Ubicaciones:
1. **Local (Desarrollo):**
```
C:\word\demo\database\main.db
```
2. **Raspberry Pi (Producción):**
```
/home/pi/gkachele-saas/database/main.db
```
---
## 🖥️ OPCIÓN 1: DB Browser for SQLite (GUI - Recomendado)
Ya tienes **DB Browser for SQLite** abierto. Sigue estos pasos:
### Para Base de Datos Local:
1. En DB Browser, haz clic en **"Abrir base de datos"** (botón en la barra superior)
2. Navega a: `C:\word\demo\database\`
3. Selecciona `main.db`
4. ¡Listo! Verás todas las tablas
### Para Base de Datos de Raspberry (Copiar primero):
1. **Copiar DB desde Raspberry:**
```bash
# Desde PowerShell o WSL:
wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry.db"
```
2. **Abrir en DB Browser:**
- Abre `C:\word\demo\database\main_raspberry.db`
---
## 📊 Tablas Disponibles
Una vez conectado, verás estas tablas:
### 👥 **users** - Todos los clientes
```sql
SELECT * FROM users;
```
- `id`, `email`, `password` (hash), `plan`, `rubro`, `created_at`
### 🌐 **sites** - Todos los sitios
```sql
SELECT * FROM sites;
```
- `id`, `user_id`, `slug`, `theme`, `status`, `content_json`, `created_at`
### 📋 **menus** - Menús dinámicos
```sql
SELECT * FROM menus;
```
- `id`, `user_id`, `site_id`, `location`, `title`, `url`, `order_index`, `parent_id`
### 🧩 **widgets** - Widgets dinámicos
```sql
SELECT * FROM widgets;
```
- `id`, `user_id`, `site_id`, `area`, `type`, `title`, `content`, `order_index`
### 📝 **content** - Contenido por sección
```sql
SELECT * FROM content;
```
### ⚙️ **settings** - Configuraciones
```sql
SELECT * FROM settings;
```
### 📤 **requests** - Solicitudes de publicación
```sql
SELECT * FROM requests;
```
### 📁 **media** - Archivos subidos
```sql
SELECT * FROM media;
```
---
## 🐍 OPCIÓN 2: Script Python (Terminal)
### Ver Usuarios y Sitios:
```bash
cd C:\word\demo
python ver_usuarios.py
```
### Limpiar Base de Datos:
```bash
cd C:\word\demo
python limpiar_db.py
```
---
## 🔍 Consultas Útiles
### Ver todos los clientes con sus sitios:
```sql
SELECT
u.id AS user_id,
u.email,
u.plan,
u.rubro,
COUNT(s.id) AS num_sitios
FROM users u
LEFT JOIN sites s ON u.id = s.user_id
GROUP BY u.id
ORDER BY u.id;
```
### Ver sitios de un cliente específico:
```sql
SELECT * FROM sites WHERE user_id = 1;
```
### Ver menús de un sitio:
```sql
SELECT * FROM menus WHERE site_id = 1 ORDER BY location, order_index;
```
### Ver widgets de un sitio:
```sql
SELECT * FROM widgets WHERE site_id = 1 ORDER BY area, order_index;
```
---
## 🔄 Sincronizar DB desde Raspberry
Si quieres trabajar con la base de datos más actualizada (de producción):
```bash
# Script para copiar DB desde Raspberry
wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry.db && echo '✅ DB copiada desde Raspberry'"
```
Luego abre `main_raspberry.db` en DB Browser.
---
## ⚠️ IMPORTANTE
- **NO edites directamente la DB de producción** sin hacer backup primero
- **Usa los scripts** (`ver_usuarios.py`, `limpiar_db.py`) para operaciones comunes
- **Haz backup** antes de cambios importantes (usa `backup_completo.sh`)
---
## 🛠️ Script Rápido: Copiar DB desde Raspberry
Ejecuta este comando para copiar la DB más reciente:
```bash
wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry_$(date +%Y%m%d_%H%M%S).db"
```
Esto creará una copia con timestamp para no sobrescribir.
---
**© 2025 GKACHELE™. Todos los derechos reservados.**