Modularización de GKACHELE SaaS
This commit is contained in:
182
memoria/COMO_CONECTAR_DB.md
Normal file
182
memoria/COMO_CONECTAR_DB.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# 🔌 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.**
|
||||
Reference in New Issue
Block a user