3.7 KiB
3.7 KiB
📋 Guía Paso a Paso: Crear Colección Guild Cache en Appwrite
Paso 1: Acceder a tu Database
- Ve a Appwrite Console (o tu instancia)
- Selecciona tu proyecto
- En el menú lateral, haz clic en Databases
- Selecciona tu database (el que tienes en
APPWRITE_DATABASE_ID)
Paso 2: Crear la Colección
- Haz clic en Create Collection
- Collection Name:
guild_cache - Collection ID: Déjalo autogenerar o usa
guild_cache - Haz clic en Create
Paso 3: Agregar Atributos
En la colección que acabas de crear, ve a la pestaña Attributes y crea estos 4 atributos:
Atributo 1: guildId
- Haz clic en Create Attribute → String
- Attribute Key:
guildId - Size:
32 - Required: ✅ Sí (marcado)
- Array: ❌ No
- Haz clic en Create
Atributo 2: name
- Haz clic en Create Attribute → String
- Attribute Key:
name - Size:
100 - Required: ✅ Sí (marcado)
- Array: ❌ No
- Haz clic en Create
Atributo 3: prefix
- Haz clic en Create Attribute → String
- Attribute Key:
prefix - Size:
10 - Required: ❌ No (desmarcado)
- Default value: (déjalo vacío)
- Array: ❌ No
- Haz clic en Create
Atributo 4: expiresAt
- Haz clic en Create Attribute → DateTime
- Attribute Key:
expiresAt - Required: ✅ Sí (marcado)
- Array: ❌ No
- Haz clic en Create
⏳ IMPORTANTE: Espera unos segundos a que todos los atributos estén en estado Available antes de continuar.
Paso 4: Crear Índices
Ve a la pestaña Indexes y crea estos 2 índices:
Índice 1: guildId (único)
- Haz clic en Create Index
- Index Key:
idx_guildId - Index Type: Unique
- Attributes: Selecciona
guildId - Order: ASC
- Haz clic en Create
Índice 2: expiresAt
- Haz clic en Create Index
- Index Key:
idx_expiresAt - Index Type: Key
- Attributes: Selecciona
expiresAt - Order: ASC
- Haz clic en Create
Paso 5: Configurar Permisos
Ve a la pestaña Settings → Permissions:
- Por defecto debería estar configurado como "API Key"
- Si no, agrega estos permisos:
- Role:
Any - Permissions: Read, Create, Update, Delete (todas marcadas)
- Role:
Paso 6: Copiar el Collection ID
- En la parte superior de la colección, verás el Collection ID
- Cópialo (algo como
67xxxxxxoguild_cachesi lo personalizaste)
Paso 7: Actualizar Variables de Entorno
Agrega a tu .env (o Config Vars en Heroku):
APPWRITE_COLLECTION_GUILD_CACHE_ID=el_collection_id_que_copiaste
Paso 8: Verificar
Para verificar que todo está bien:
- Ve a la colección
- Pestaña Attributes: Deberías ver 4 atributos (guildId, name, prefix, expiresAt)
- Pestaña Indexes: Deberías ver 2 índices (idx_guildId, idx_expiresAt)
Paso 9: Redeploy el Bot
# Si es local
npm run build
npm start
# Si es Heroku
git add .
git commit -m "chore: agregar APPWRITE_COLLECTION_GUILD_CACHE_ID"
git push heroku main
✅ Listo!
Después del redeploy, busca en los logs:
✅ Guild config guardada en caché (Appwrite)
🐛 Solución de Problemas
Error: "Attribute already exists"
- El atributo ya existe, pasa al siguiente
Error: "Index already exists"
- El índice ya existe, pasa al siguiente
Error: "Collection not found"
- Verifica que el
APPWRITE_COLLECTION_GUILD_CACHE_IDsea correcto
No veo mensajes de caché en los logs
- Verifica que todas las variables de Appwrite estén configuradas
- Revisa que el Collection ID sea correcto
- Comprueba que la colección tenga los permisos correctos