Yennifer Paola Herrera Ariza
Ahora sí. Actualizaron la clase
Japheth Calzada López
va muy bueno sinceramente
Miguel Angel Reyes Moreno
¿Qué era lo que tenía que actualizarse?
Migrar una base de datos sin romper el servicio exige método, contexto y pruebas. Con Claude Code puedes orquestar migraciones en Docker, validar con unit tests y avanzar fase por fase de un plan de implementación bien definido, todo desde la terminal y con control humano sobre cada paso.
¿Cómo preparar el entorno local antes de migrar?
Antes de tocar la base de datos, el servicio tiene que estar corriendo. El archivo Makefile dentro de backend concentra los comandos clave para levantar el proyecto.
make build construye la imagen y descarga los paquetes necesarios.make start inicia el servicio de API.make logs confirma que el contenedor encendió correctamente.Una vez arriba, abres el navegador en localhost:8000 y verificas que el API responde. Ese ping inicial te ahorra horas de depuración más adelante.
¿Qué hace el comando make build? Construye la imagen de Docker del backend descargando todas las dependencias declaradas en el proyecto, dejando el contenedor listo para iniciarse con
make start.
¿Cómo agregar un comando para ejecutar pruebas?
El Makefile original no traía un comando para correr pruebas dentro del contenedor. En lugar de escribirlo a mano, le pasas el archivo como contexto a Claude Code y le pides que cree un comando nuevo llamado test que ejecute Pytest dentro del contenedor de API [04:18].
Claude propone la edición, tú la apruebas y queda lista. Desde una nueva terminal, dentro de backend, corres make test y validas que el set de pruebas funcione.
¿Cómo resolver errores de dependencias en los tests?
La primera ejecución suele fallar. En esta base de código, los unit tests requerían dos paquetes que no estaban instalados: HTTPX y pytest-asyncio.
La solución fue añadirlos a las dependencias opcionales del proyecto y reconstruir con UV, el gestor de paquetes que usa este backend. Después de eso, los tests corrieron al 100%.
¿Qué es pytest-asyncio? Es un plugin de Pytest que permite ejecutar pruebas sobre funciones asíncronas de Python, indispensable cuando tu API usa
async/await.
Este tipo de retos son perfectos para resolver con Claude Code: le das el error como contexto y te sugiere dónde ajustar el archivo de dependencias.
¿Cómo ejecutar la fase de migración con Claude Code?
El plan de implementación define fases con checklists claros. La fase uno es base de datos, y el flujo correcto es activar el plan mode antes de ejecutar nada [09:42].
¿Qué modos de ejecución ofrece Claude Code?
Claude Code tiene tres modos que cambias con Shift+Tab, cada uno con un nivel distinto de autonomía.
En una migración, el plan mode te deja revisar la estrategia completa antes de que Claude escriba una sola línea. Verás el contenedor que va a usar, la última migración aplicada y el patrón identificado.
¿Cómo darle el contexto correcto al agente?
Claude Code necesita ubicación y archivos específicos. Si mencionas un archivo que no encuentra, el problema casi siempre es el directorio actual.
Puedes activar el bash mode con el signo de exclamación para ejecutar comandos como pwd y orientarte. Cuando Claude no logra cambiar de carpeta por restricciones, lo más rápido es salir, navegar manualmente y reiniciar la sesión.
Una vez ubicado, le pasas el plan con @01-backend.md y le indicas que use los comandos del Makefile para reconstruir la imagen si hace falta. El agente entonces revisa contenedores activos, consulta el estado de Alembic, identifica la última migración y propone el plan completo.
¿Cómo validar que la migración no rompió el servicio?
Claude Code crea el archivo de migración, ejecuta los constraints, los índices y aplica todo en Postgres. El cierre de la fase llega cuando vuelves a correr los unit tests y todo sigue verde.
El agente además propone una verificación adicional con el endpoint de health y llamadas vía cURL a los endpoints principales. Esto convierte la validación en una mini prueba de integración:
Para mantener el plan de implementación sincronizado, conectas Claude Code con el editor, seleccionas el bloque del checklist y con Command+Option+K lo mencionas como contexto. Le pides marcar como finalizadas las tareas completadas y el agente actualiza los checks automáticamente.
¿Por qué importa cerrar cada fase con tests?
Una migración silenciosa puede romper consultas, modelos o relaciones sin previo aviso. Volver a ejecutar los unit tests después de cada cambio te garantiza que el contrato del API sigue intacto antes de pasar a la siguiente fase, como la creación de los modelos de SQLAlchemy.
¿Qué retos enfrentaste al implementar la fase dos con Claude Code? Déjalo en los comentarios.
Yennifer Paola Herrera Ariza
Ahora sí. Actualizaron la clase
Japheth Calzada López
va muy bueno sinceramente
Miguel Angel Reyes Moreno
¿Qué era lo que tenía que actualizarse?
Jonathan Narváez Urresta
La clase explica cómo usar Cloud Code para implementar migraciones de base de datos de manera segura, utilizando unit tests para verificar el correcto funcionamiento del servicio antes y después de cada fase.
Carlos Esteban León Pinilla
Mmmm no sé, prefiero codear y no hablar con un LLM, solo usarlo en casos concretos pero usarlo para correr una migración o ejecutar un contenedor, eso incita la pereza mental. Como van a hacer cuando no tengan acceso a un LLM o en una entrevista?
Andres Trujillo
xd pues es obvio lo que dices, pero a ver esto ahorra tiempo si logras automatizar muchos comandos!
Japheth Calzada López
Podrias hacer ambas, ver lo que te da el LLM ver si es lo que necesitas y de ahi hacer mejoras, o tener otra visión de lo creado, apoyo tu idea de que muchos solo se quedan con eso y se vuelven perezosos
Yehoshua Goldman Saravia
esto es casi magia . Tener unit tests dentro del contenedor y logs claros me hace sentir seguro de mover cualquier cosa en la API.
César David Ramírez Dimaté
Si, aunque me parece algo innecesario estar gastando tokens para cosas tan sencillas como moverse de una carpeta o ejecutar comandos de docker-compose
Daniel Alfredo García Serna
📚 Nombre de la clase
Migración de base de datos con Docker al sistema local
🎯 Idea principal
Migrar una base de datos desde Docker a un entorno local implica extraer, adaptar y validar los datos correctamente, asegurando que todo funcione fuera del contenedor. No es solo copiar datos, es garantizar compatibilidad, integridad y funcionamiento en un nuevo entorno.
⚡ Síntesis en 10 segundos
🔑 Puntos clave
🧠 Conceptos importantes
🧩 Modelo mental de la clase
Base en Docker → exportación → adaptación → importación local → validación → uso
o
Extraer → mover → ajustar → verificar
🚀 Acciones inmediatas
💼 Aplicación profesional
🔥 Hacks para la comunidad
📝 Reflexión estratégica
Mover datos es una tarea crítica: un error puede costar mucho tiempo o información.
Un desarrollador profesional no solo construye features, también sabe mover y proteger datos correctamente.
👉 La clave no es solo migrar… es hacerlo de forma segura, reproducible y verificable.
Cesar Augusto Morales Godoy
Por que dice que va a migrar la base de datos pero empieza haciendo unit testing
Cesar Augusto, piensa en los tests unitarios como tu red de seguridad antes de caminar por la cuerda floja. Si no sabes si el código funciona ahora, ¿cómo sabrás si la migración lo rompió después?
Primero estableces una línea base de salud. Si los tests pasan, tienes permiso para modificar la base de datos. Si algo falla tras la migración, sabrás exactamente dónde mirar.
¿Qué pasaría si intentaras migrar sin saber si tu sistema ya estaba roto desde antes?
Andrés Orlando Orduz Grimaldo
Miguel Angel Reyes Moreno
¿Entrar en el modo bash de claude code consume tokens?
Hola, Miguel Angel. Sí, el uso de herramientas dentro de Claude Code, incluido el modo Bash para ejecutar comandos, consume tokens.
Cada vez que Claude Code interactúa con tu terminal, lee archivos o ejecuta comandos, envía información al modelo para procesar el contexto y generar la respuesta o la acción. Por lo tanto, todas estas operaciones cuentan como parte del consumo de tokens de la sesión.
Para gestionar esto de manera eficiente, te recomiendo revisar Control de costos y modelos en Claude Code, donde se explica cómo optimizar el uso de la herramienta y mantener el gasto bajo control mientras trabajas en tus proyectos.
Ricardo Madrid
Si no saben cómo integrar Claude Code con el IDe se puede usar /IDE.
Diego Mauricio Zuluaga Rodríguez
Qué significa ejecutar pruebas dentro de un contenedor?
Ejecutar pruebas en un contenedor es como crear un laboratorio portátil donde controlas exactamente qué hay dentro. Te aseguras de que tu código no dependa de las configuraciones específicas de tu computadora, sino de un entorno limpio y predecible que replica fielmente el servidor real.
Si tu código funciona en tu máquina pero falla en producción, ¿qué crees que está cambiando entre ambos entornos?
José Gregorio Hernández Ortiz
Yo haría todo manual en Docker, es dolor de cabeza si falla, estas no delegaría a la IA, más si tengo que crear otro servidor, abrir el puerto que suele pasar. Y también esta el problema de las versiones de cada aplicación instalada.
Sebastián Plazas
Yo llegué directo a este curso de Claude Code, pero veo que están trabajando sobre un proyecto el cual no entregan desde el principio, alguien sabe que ruta siguen?
Álvaro Morales
En lugar de estar cambiando de carpetas, no es mejor estar ubicados en una carpeta root donde tenga acceso a cada uno de estos directorios?
Anthony Pernia
Me parece que por el contexto, para especificar que trabaje en esa carpeta backend. Quiza si la coloca en root , claude se ponga a alucinar y cambie fontend , etc. Ademas quiza ahorra tokens si le dice que cambie ahi no mas.
Leonel Moyano
El prompt que hice para que los tests se completaran sin problema fue:
run 'make test', check the errors and fix it to complete succesfully all test. Also explain the changes you made to fix them, i want to understand whats happening
Brian Ramirez Salazar
Es una muy buena herramienta cm apoyo para el desarrollo, tener mucho en cuenta validar lo que genera la IA antes de ejecutar
Josef Rodriguez
Sugiero manejar al mismo tiempo la terminal de claude y la terminal (normal por si queremos avanzar entre directorios) veo que todo se lo està pidiendo a laude y no pued hacerlo. nunca abandonemos la terminal es lo mejor que hay
Juan Esteban Díaz Montejo
Ejecutar comandos directamente con ! (Bash mode) hace consumo de tokens? Puede ser importante para la eficiencia en el uso de los mismos.
Roberto Carlos Moreira España
Ponerle atención a las dos advertencias, antes de continuar, me encanta aprender con calidad de maestro