Guía Completa de Migración a Supabase Externo

Índice

Archivos de Migración

Archivo
Descripción

01-schema-migration.sql

Schema base completo (tablas, funciones, RLS, storage)

02-data-export-queries.sql

Queries para exportar datos de las tablas base

04-edge-functions-config.toml

Configuración de Edge Functions

05-self-hosting-guide.md

Guía para self-hosting

06-v1.1.0-migration.sql

Migración incremental v1.1.0 (clientes, plantillas)

07-v1.1.0-data-export.sql

Queries de exportación para nuevas tablas v1.1.0

08-v1.2.0-migration.sql

NUEVO - Migración v1.2.0 (datos demo, tours)


Requisitos Previos

Herramientas necesarias:

Información a recopilar:


Paso 1: Preparar Proyecto Supabase

1.1 Obtener credenciales

  1. Selecciona tu proyecto

  2. Ve a Settings → API

  3. Copia:

    • Project URL

    • anon public key

    • service_role secret key

1.2 Verificar configuración de autenticación

  1. Ve a Authentication → Settings

  2. En Email Auth, asegúrate de que esté habilitado

  3. Configura el Site URL con la URL de tu aplicación


Paso 2: Ejecutar Migración del Schema

2.1 Ejecutar el script de migración base

  1. Ve a SQL Editor en tu proyecto Supabase

  2. Crea un nuevo query

  3. Copia todo el contenido de 01-schema-migration.sql

  4. Ejecuta el script

2.2 Ejecutar migración incremental v1.1.0

  1. Después de la migración base, ejecuta 06-v1.1.0-migration.sql

  2. Este script añade:

    • Tabla client_companies - Gestión de empresas cliente

    • Tabla client_contacts - Gestión de contactos

    • Tabla company_templates - Plantillas personalizadas

    • Columnas client_contact_id y client_company_id en budgets

    • Políticas RLS para las nuevas tablas

Tablas incluidas en la migración base (01-schema-migration.sql)

Las siguientes tablas se crean en la migración base:

  • subscription_plans - Planes de suscripción

  • companies - Empresas/organizaciones

  • profiles - Perfiles de usuario

  • user_roles - Roles RBAC por empresa

  • budgets - Propuestas comerciales

  • budget_versions - Historial de versiones

  • budget_conversations - Chat de propuestas

  • products - Catálogo de productos

  • discount_presets - Descuentos predefinidos

  • sales_goals - Metas de ventas

  • commission_rules - Reglas de comisiones

  • commission_calculations - Cálculos de comisiones

  • company_usage - Uso mensual

  • company_storage_quotas - Cuotas de almacenamiento

  • company_invitations - Invitaciones pendientes

  • user_images - Biblioteca de imágenes

  • subscription_notifications - Registro de notificaciones

  • hubspot_settings - Configuración HubSpot

  • pipedream_connections - Conexiones Pipedream

  • knowledge_base - Base de conocimiento

  • payment_history - Historial de pagos

  • workflows - Flujos de automatización (triggers, condiciones, acciones)

  • workflow_executions - Registro de ejecuciones de workflows

2.3 Ejecutar migración v1.2.0

  1. Finalmente, ejecuta 08-v1.2.0-migration.sql

  2. Este script añade:

    • Columna is_demo a tablas para marcar datos de demostración

    • Función seed_demo_data() para crear datos de ejemplo

    • Función delete_demo_data() para eliminar datos demo

    • Índices para optimización de consultas con datos demo

2.3 Verificar la migración

Después de ejecutar, verifica que se crearon:

Resultado esperado:

  • ✅ 23 tablas creadas (20 base + 3 nuevas v1.1.0)

  • ✅ 16 funciones creadas (14 base + 2 nuevas v1.2.0)

  • ✅ ~52 políticas RLS creadas

  • ✅ 3 storage buckets creados

  • ✅ Índices para datos demo creados


Paso 3: Exportar e Importar Datos

3.1 Exportar datos base del proyecto actual

Para cada tabla, ejecuta la query correspondiente en 02-data-export-queries.sql en el SQL Editor actual (Lovable Cloud).

Orden de ejecución (IMPORTANTE - respetar dependencias):

  1. subscription_plans

  2. companies

  3. profiles

  4. user_roles

  5. products

  6. discount_presets

  7. budgets

  8. budget_versions

  9. budget_conversations

  10. knowledge_base

  11. sales_goals

  12. commission_rules

  13. company_invitations

  14. hubspot_settings

  15. user_images

3.2 Exportar datos v1.1.0 (nuevas tablas)

Después de los datos base, ejecuta las queries en 07-v1.1.0-data-export.sql:

  1. client_companies - Empresas cliente

  2. client_contacts - Contactos de clientes

  3. company_templates - Plantillas personalizadas

  4. Actualizaciones de budgets con referencias a clientes

3.3 Importar datos en el nuevo proyecto

  1. Copia los resultados de cada query (los INSERT statements generados)

  2. Ve al SQL Editor del nuevo proyecto

  3. Ejecuta los INSERTs en el mismo orden

3.3 Verificar importación


Paso 4: Configurar Secrets

4.1 Agregar secrets en Edge Functions

Ve a Settings → Edge Functions → Secrets y agrega:

Secret Name
Descripción

CLERK_PUBLISHABLE_KEY

Clave pública de Clerk

CLERK_SECRET_KEY

Clave secreta de Clerk

GEMINI_API_KEY

API key de Google Gemini

OPENAI_API_KEY

API key de OpenAI

LIVEBLOCKS_SECRET_KEY

Clave secreta de Liveblocks

HUBSPOT_ACCESS_TOKEN

Token de acceso de HubSpot

PIPEDREAM_CLIENT_ID

Client ID de Pipedream

PIPEDREAM_CLIENT_SECRET

Client Secret de Pipedream

PIPEDREAM_PROJECT_ID

Project ID de Pipedream

4.2 Variables adicionales necesarias

También necesitarás configurar:

  • SUPABASE_URL (se obtiene automáticamente)

  • SUPABASE_SERVICE_ROLE_KEY (se obtiene automáticamente)


Paso 5: Migrar Storage

5.1 Verificar buckets creados

Los buckets ya deberían estar creados por el script de migración:

  • knowledge-files (privado)

  • company-logos (público)

  • budget-images (público)

5.2 Descargar archivos del proyecto actual

Para cada bucket, necesitas:

  1. Listar archivos existentes:

  1. Descargar cada archivo:

5.3 Subir archivos al nuevo proyecto

5.4 Actualizar URLs en la base de datos

Después de migrar los archivos, actualiza las URLs en las tablas:

  • companies.logo_url

  • knowledge_base.file_url

  • user_images.url

  • products.image_url


Paso 6: Desplegar Edge Functions

6.1 Instalar Supabase CLI

6.2 Login y vincular proyecto

6.3 Copiar Edge Functions

Copia la carpeta supabase/functions de tu proyecto Lovable a tu directorio local.

6.4 Desplegar todas las funciones

Lista de funciones a desplegar:

  1. accept-invitation

  2. admin-panel

  3. chat-gemini

  4. crm-via-pipedream

  5. exchange-rates

  6. hubspot-api

  7. import-budget

  8. invite-team-member

  9. liveblocks-auth

  10. manage-team

  11. parse-document

  12. pipedream-action

  13. pipedream-auth

6.5 Verificar despliegue


Paso 7: Actualizar Variables de Entorno

7.1 Crear archivo .env.local

Crea un archivo .env.local en la raíz de tu proyecto Lovable:

7.2 Actualizar código si es necesario

El cliente de Supabase ya está configurado para usar estas variables:


Paso 8: Verificación Final

8.1 Checklist de verificación

8.2 Tests funcionales

  1. Autenticación: Verifica que el login/registro funciona

  2. CRUD: Prueba crear, leer, actualizar y eliminar un presupuesto

  3. Storage: Sube una imagen y verifica que se guarda

  4. Edge Functions: Prueba el chat con IA

8.3 Queries de verificación


Troubleshooting

Error: "permission denied for table..."

  • Verifica que RLS esté habilitado y las políticas sean correctas

  • Asegúrate de que el usuario tenga los permisos necesarios

Error: "foreign key violation"

  • Importa los datos en el orden correcto (respetando dependencias)

  • Verifica que los IDs referenciados existan

Error: "function does not exist"

  • Ejecuta nuevamente la sección de funciones del script de migración

  • Verifica que el enum app_role fue creado

Edge Functions no responden

  • Verifica que los secrets estén configurados

  • Revisa los logs en Supabase Dashboard → Edge Functions → Logs


Soporte

Si encuentras problemas durante la migración:

  1. Revisa los logs en Supabase Dashboard

  2. Verifica los queries en el SQL Editor

Última actualización