mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 15:35:22 +02:00
114 lines
3.4 KiB
Markdown
114 lines
3.4 KiB
Markdown
# Migración de Experimentos - Supabase
|
|
|
|
## Pasos para configurar la tabla de experimentos:
|
|
|
|
### 1. Ve a tu proyecto de Supabase
|
|
Abre: https://supabase.com/dashboard/project/qjioywarwdbxmdihyrti
|
|
|
|
### 2. Navega a SQL Editor
|
|
- Click en **"SQL Editor"** en la barra lateral izquierda
|
|
- Click en **"New query"**
|
|
|
|
### 3. Copia y ejecuta el siguiente SQL:
|
|
|
|
```sql
|
|
-- Crear tabla de experimentos
|
|
CREATE TABLE IF NOT EXISTS experiments (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
type TEXT NOT NULL CHECK (type IN ('pricing', 'advertising', 'content', 'promotion')),
|
|
status TEXT NOT NULL DEFAULT 'planned' CHECK (status IN ('planned', 'active', 'completed', 'paused')),
|
|
|
|
asins TEXT[] NOT NULL DEFAULT '{}',
|
|
marketplace TEXT NOT NULL,
|
|
|
|
start_date DATE NOT NULL,
|
|
end_date DATE,
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ DEFAULT NOW(),
|
|
|
|
hypothesis TEXT,
|
|
primary_metric TEXT NOT NULL DEFAULT 'units',
|
|
target_lift_percent NUMERIC,
|
|
|
|
baseline_units NUMERIC,
|
|
baseline_revenue NUMERIC,
|
|
baseline_gv NUMERIC,
|
|
baseline_cvr NUMERIC,
|
|
baseline_acos NUMERIC,
|
|
|
|
experiment_units NUMERIC,
|
|
experiment_revenue NUMERIC,
|
|
experiment_gv NUMERIC,
|
|
experiment_cvr NUMERIC,
|
|
experiment_acos NUMERIC,
|
|
|
|
actual_lift_percent NUMERIC,
|
|
statistical_significance NUMERIC,
|
|
|
|
learnings TEXT,
|
|
owner TEXT
|
|
);
|
|
|
|
-- Si la tabla ya existe y necesitas actualizarla, usa:
|
|
-- ALTER TABLE experiments
|
|
-- ADD COLUMN IF NOT EXISTS baseline_gv NUMERIC,
|
|
-- ADD COLUMN IF NOT EXISTS baseline_cvr NUMERIC,
|
|
-- ADD COLUMN IF NOT EXISTS baseline_acos NUMERIC,
|
|
-- ADD COLUMN IF NOT EXISTS experiment_gv NUMERIC,
|
|
-- ADD COLUMN IF NOT EXISTS experiment_cvr NUMERIC,
|
|
-- ADD COLUMN IF NOT EXISTS experiment_acos NUMERIC;
|
|
|
|
-- Crear índices para mejorar rendimiento
|
|
CREATE INDEX IF NOT EXISTS idx_experiments_status ON experiments(status);
|
|
CREATE INDEX IF NOT EXISTS idx_experiments_marketplace ON experiments(marketplace);
|
|
CREATE INDEX IF NOT EXISTS idx_experiments_type ON experiments(type);
|
|
CREATE INDEX IF NOT EXISTS idx_experiments_dates ON experiments(start_date, end_date);
|
|
CREATE INDEX IF NOT EXISTS idx_experiments_asins ON experiments USING GIN(asins);
|
|
|
|
-- Función para actualizar updated_at
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = NOW();
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
-- Trigger para actualizar updated_at automáticamente
|
|
DROP TRIGGER IF EXISTS update_experiments_updated_at ON experiments;
|
|
CREATE TRIGGER update_experiments_updated_at
|
|
BEFORE UPDATE ON experiments
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_updated_at_column();
|
|
|
|
-- Deshabilitar RLS para desarrollo (opcional, habilitar en producción)
|
|
ALTER TABLE experiments DISABLE ROW LEVEL SECURITY;
|
|
```
|
|
|
|
### 4. Click en **"Run"** para ejecutar el SQL
|
|
|
|
### 5. Verifica que se creó correctamente
|
|
- Ve a **"Table Editor"** en la barra lateral
|
|
- Deberías ver la tabla `experiments` en la lista
|
|
|
|
### 6. ¡Listo!
|
|
La pestaña de Experiments en tu aplicación ya debería funcionar correctamente.
|
|
|
|
---
|
|
|
|
## Solución de problemas:
|
|
|
|
### Error: "relation already exists"
|
|
La tabla ya existe. No necesitas hacer nada más.
|
|
|
|
### Error: "permission denied"
|
|
Asegúrate de estar usando la **service_role key** en tu `.env.local`:
|
|
```
|
|
SUPABASE_SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
```
|
|
|
|
### Error: "type already exists"
|
|
Los tipos ya están definidos. El resto del SQL debería ejecutarse sin problemas.
|