3.3 KiB
3.3 KiB
Notas del Proyecto CRUD Python
Estado del Proyecto
- Traducidos los ficheros Java a Python (SQLite + MongoDB)
crud_sqlite.pytesteado y funcional ✅crud_mongodb.pyescrito pero pendiente de testear (falta servidor MongoDB)- Incorporar librería
Fakerpara poblar con datos de prueba
MongoDB en localhost — Modus Operandi
El problema
MongoDB no está en los repositorios oficiales de Debian (a diferencia de MariaDB/PostgreSQL). Instalarlo nativo implica:
- Añadir el repo de MongoDB Inc. manualmente
- Importar claves GPG
- Lidiar con incompatibilidades de versión (libssl, etc.)
- El servicio
mongodqueda instalado permanentemente
La solución más simple: Docker 🐳
Ya tenemos Docker instalado en el sistema (Docker 29.2.1).
┌─────────────────────────────────────────────┐ │ Debian (localhost) │ │ │ │ crud_mongodb.py ──► localhost:27017 │ │ │ │ │ ┌─────────────┴──────────────┐ │ │ │ Contenedor Docker │ │ │ │ ┌───────────────────────┐ │ │ │ │ │ mongod (servidor) │ │ │ │ │ │ puerto 27017 │ │ │ │ │ │ datos en /data/db │ │ │ │ │ └───────────────────────┘ │ │ │ └────────────────────────────┘ │ └─────────────────────────────────────────────┘
Comandos para arrancar MongoDB con Docker
# 1. Arrancar MongoDB (descarga la imagen la primera vez ~800MB)
docker run -d --name mongo-test -p 27017:27017 mongo
# 2. Ejecutar el script Python con:
# CADENA_CONEXION = "mongodb://localhost:27017"
python3 crud_mongodb.py
# 3. Cuando termines, parar y borrar:
docker stop mongo-test && docker rm mongo-test
Alternativas
| Método | Dificultad | Notas |
|---|---|---|
| Docker 🐳 | ⭐ Fácil | ✅ Ya disponible. Un comando y listo |
Paquete .deb |
⭐⭐ Media | Repo externo, posibles conflictos libssl |
| Atlas (nube) | ⭐ Fácil | Requiere cuenta en mongodb.com/atlas (M0 gratuito) |
Cambio necesario en crud_mongodb.py
La cadena de conexión del Java original ya no existe:
clusterdam2025.9q7lm.mongodb.net → DNS NXDOMAIN ❌
Para testear en local, cambiar la línea CADENA_CONEXION a:
CADENA_CONEXION = "mongodb://localhost:27017"
Pendiente: Faker
Incorporar la librería Faker para generar datos de prueba aleatorios en lugar de los datos hardcodeados actuales.
pip install faker