#+TITLE: Notas del Proyecto CRUD Python #+DATE: 2026-02-20 * Estado del Proyecto - [X] Traducidos los ficheros Java a Python (SQLite + MongoDB) - [X] =crud_sqlite.py= testeado y funcional ✅ - [ ] =crud_mongodb.py= escrito pero pendiente de testear (falta servidor MongoDB) - [ ] Incorporar librería =Faker= para 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: 1. Añadir el repo de MongoDB Inc. manualmente 2. Importar claves GPG 3. Lidiar con incompatibilidades de versión (libssl, etc.) 4. El servicio =mongod= queda instalado permanentemente ** La solución más simple: Docker 🐳 Ya tenemos Docker instalado en el sistema (=Docker 29.2.1=). #+begin_example ┌─────────────────────────────────────────────┐ │ Debian (localhost) │ │ │ │ crud_mongodb.py ──► localhost:27017 │ │ │ │ │ ┌─────────────┴──────────────┐ │ │ │ Contenedor Docker │ │ │ │ ┌───────────────────────┐ │ │ │ │ │ mongod (servidor) │ │ │ │ │ │ puerto 27017 │ │ │ │ │ │ datos en /data/db │ │ │ │ │ └───────────────────────┘ │ │ │ └────────────────────────────┘ │ └─────────────────────────────────────────────┘ #+end_example ** Comandos para arrancar MongoDB con Docker #+begin_src bash # 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 #+end_src ** 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: #+begin_src python CADENA_CONEXION = "mongodb://localhost:27017" #+end_src * Pendiente: Faker Incorporar la librería [[https://pythonisas.github.io/Pythonisas][Faker]] para generar datos de prueba aleatorios en lugar de los datos hardcodeados actuales. #+begin_src bash pip install faker #+end_src