---
name: modifying-database
description: Crea y aplica migraciones SQL con Supabase CLI en este monorepo (supabase/migration new, migration up, db reset). Use when changing the database schema, adding tables or columns, writing migrations, or when the user mentions Supabase migrations, local DB, or database changes in x-clone.
---

# Modificar la base de datos (x-clone)

## Contexto del proyecto

- La carpeta de Supabase está en la raíz del repo: `supabase/`.
- Los archivos de migración viven en `supabase/migrations/` (timestamp + nombre).


## Modo no interactivo (obligatorio en automatización / agentes)

Para que el comando **no se quede colgado** esperando entrada:

- Con **npx** (recomendado si `supabase` no está en el PATH): `npx --yes` evita el prompt de instalación de npm; el flag **`--yes`** de la CLI evita confirmaciones de Supabase.
- Ejemplo desde la raíz del repo:

  ```bash
  npx --yes supabase migration new nombre_migracion --yes
  ```

Si tienes la CLI instalada globalmente, usa el mismo `--yes` al final:

```bash
supabase migration new nombre_migracion --yes
```

## Flujo estándar

1. **Crear migración vacía**

   ```bash
   npx --yes supabase migration new nombre_migracion --yes
   ```

   Sustituye `nombre_migracion` por un nombre descriptivo en snake_case (ej. `add_posts_table`).

2. **Editar el SQL**

   Abre el `.sql` recién creado en `supabase/migrations/` y escribe el DDL o los cambios (CREATE TABLE, ALTER TABLE, índices, RLS, etc.).

3. **Aplicar migraciones pendientes**

   ```bash
   npx --yes supabase migration up --yes
   ```



## Si el estado local de migraciones o la BD está corrupto

`supabase db reset` **borra los datos locales**, vuelve a crear la base desde cero y **reaplica todas** las migraciones en orden.

```bash
npx --yes supabase db reset --yes
```



## Resumen rápido

| Acción              | Comando (no interactivo) |
|---------------------|---------------------------|
| Nueva migración     | `npx --yes supabase migration new <nombre> --yes` |
| Aplicar pendientes  | `npx --yes supabase migration up --yes` |
| Reset local + reaplicar todo | `npx --yes supabase db reset --yes` |

