programar-un-simple-y-minim.../TAREAS.org

3.3 KiB

Notas del Proyecto CRUD Python

Estado del Proyecto

  • Traducidos los ficheros Java a Python (SQLite + MongoDB)
  • 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).

┌─────────────────────────────────────────────┐
│  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