Migraciones
Aprenda a crear y gestionar migraciones de base de datos en su aplicación.
Nota: Este es contenido de ejemplo/marcador de posición con fines de demostración.
Las migraciones de base de datos le permiten versionar los cambios en el esquema de su base de datos y aplicarlos de forma coherente en todos los entornos.
Crear una migración
Para crear una nueva migración, utilice el siguiente comando:
pnpm --filter web supabase:db:diff
Esto generará un nuevo archivo de migración en el directorio apps/web/supabase/migrations a partir de las diferencias entre su base de datos local y los archivos de esquema.
Aplicar migraciones
Para aplicar las migraciones a su base de datos local:
pnpm --filter web supabase migrations up
Buenas prácticas para migraciones
- Pruebe siempre las migraciones primero en local antes de aplicarlas en producción
- Haga que las migraciones sean reversibles siempre que sea posible, incluyendo sentencias DOWN
- Utilice transacciones para garantizar operaciones atómicas
- Añada índices para las claves foráneas y las columnas consultadas con frecuencia
- Incluya las políticas RLS en la misma migración en la que se crea la tabla
Ejemplo de migración
-- Crear una nueva tabla CREATE TABLE tasks ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), account_id UUID NOT NULL REFERENCES accounts(id) ON DELETE CASCADE, title TEXT NOT NULL, completed BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT now() ); -- Añadir RLS ALTER TABLE tasks ENABLE ROW LEVEL SECURITY; -- Crear políticas CREATE POLICY "Users can view their account tasks" ON tasks FOR SELECT USING (account_id IN (SELECT get_user_accounts(auth.uid())));
Restablecer la base de datos
Para restablecer por completo su base de datos local con el esquema más reciente:
pnpm supabase:web:reset
Esto eliminará todas las tablas y volverá a aplicar todas las migraciones desde cero.