Guía Completa de Migración a Supabase Externo
Índice
Requisitos Previos
Herramientas necesarias:
Información a recopilar:
Paso 1: Preparar Proyecto Supabase
1.1 Obtener credenciales
Ve a Supabase Dashboard
Selecciona tu proyecto
Ve a Settings → API
Copia:
Project URL
anon public key
service_role secret key
1.2 Verificar configuración de autenticación
Ve a Authentication → Settings
En Email Auth, asegúrate de que esté habilitado
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
Ve a SQL Editor en tu proyecto Supabase
Crea un nuevo query
Copia todo el contenido de
01-schema-migration.sqlEjecuta el script
2.2 Verificar la migración
Después de ejecutar, verifica que se crearon:
Resultado esperado:
✅ 20 tablas creadas
✅ 13 funciones creadas
✅ ~40 políticas RLS creadas
✅ 3 storage buckets creados
Paso 3: Exportar e Importar Datos
3.1 Exportar datos 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):
subscription_planscompaniesprofilesuser_rolesproductsdiscount_presetsbudgetsbudget_versionsbudget_conversationsknowledge_basesales_goalscommission_rulescompany_invitationshubspot_settingsuser_images
3.2 Importar datos en el nuevo proyecto
Copia los resultados de cada query (los INSERT statements generados)
Ve al SQL Editor del nuevo proyecto
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:
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:
Listar archivos existentes:
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_urlknowledge_base.file_urluser_images.urlproducts.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:
accept-invitationadmin-panelchat-geminicrm-via-pipedreamexchange-rateshubspot-apiimport-budgetinvite-team-memberliveblocks-authmanage-teamparse-documentpipedream-actionpipedream-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
Autenticación: Verifica que el login/registro funciona
CRUD: Prueba crear, leer, actualizar y eliminar un presupuesto
Storage: Sube una imagen y verifica que se guarda
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_rolefue 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:
Revisa los logs en Supabase Dashboard
Verifica los queries en el SQL Editor
Consulta la documentación de Supabase
Última actualización