Supermarket Database

by juanmartin19l

Not rated
GitHub

About

A dockerized PostgreSQL database project for a supermarket data schema, with MCP integration for Claude Desktop.

Details

Author
juanmartin19l
Categories
Database, Other
Tags
#postgres, #sql, #grocery

Configurar Conexión Al Servidor Postgresql

- Clic derecho en "Servers" → "Register" → "Server..."

Configurar pestaña "General":

- Name:Supermercado DB(o cualquier nombre descriptivo)

Configurar pestaña "Connection":

- Host name/address:postgres(nombre del servicio en Docker)
- Port:5432
- Username:admin
- Password:admin

- Marcar "Save password" (recomendado)
- Clic en "Save"

Una vez configurado correctamente, deberías ver:

- El servidor "Supermercado DB" en el panel izquierdo
- La base de datosadmin_dbexpandible
- Posibilidad de explorar esquemas y tablas
- Expandirel servidor conectado
- ExpandirDatabasesadmin_db
- Clic derechoenadmin_db→ "Query Tool"
- ¡Listo para ejecutar comandos SQL!

- Verificar que ambos contenedores estén ejecutándose:docker-compose ps
- Comprobar que el puerto 8080 no esté ocupado
- Revisar logs:docker-compose logs pgadmin

Si no puedes conectarte al servidor PostgreSQL desde pgAdmin:

- Usarpostgrescomo host (nolocalhostni127.0.0.1)
- Verificar que las credenciales sean exactamente:admin/admin
- Revisar logs de PostgreSQL:docker-compose logs postgres

Sistema de Base de Datos - Supermercado 🛒

Un proyecto de base de datos PostgreSQL completamente dockerizada que implementa el esquema de datos de un supermercado con capacidades de integración MCP para Claude Desktop.

- Descripción del Proyecto
-
Prerrequisitos
-
Estructura del Proyecto
-
Instalación y Configuración
-
Conexión a pgAdmin
-
Restauración de la Base de Datos
-
Integración con Claude Desktop (MCP)
-
Solución de Problemas

Este proyecto proporciona una solución completa para el manejo de datos de un supermercado utilizando PostgreSQL en contenedores Docker. Incluye:

- Base de datos PostgreSQL: Esquema completo del supermercado
- Backup de datos: Archivo de respaldo con estructura y datos de prueba
- Integración MCP: Configuración para uso con Claude Desktop
- Docker Compose: Configuración de infraestructura automatizada

Antes de comenzar, asegúrate de tener instalado:

- Dockerv20.10 o superior
-
Docker Composev2.0 o superior
-
pgAdmin(para restauración del backup)
-
Claude Desktop(opcional, para integración MCP)

DB_SUPERMARKET/ ├── docker-compose.yml # Configuración de Docker Compose ├── supermarket.backup # Backup de la base de datos └── README.md # Documentación del proyecto

- Usuario: admin
- Contraseña: admin
- Base de datos: admin_db

- Email:admin@admin.com
- Contraseña: admin
- URL:
http://localhost:8080

2. Verificar que los Contenedores estén Ejecutándose

Deberías ver dos contenedores corriendo:

- postgres_db(PostgreSQL)
- pgadmin_web(pgAdmin)

pgAdmin se incluye como parte del stack de Docker y se ejecuta automáticamente. No necesitas instalarlo por separado.
-

Abrir navegadory ir a:http://localhost:8080

- Email:admin@admin.com
- Contraseña:admin

Configurar Conexión al Servidor PostgreSQL

- Clic derecho en "Servers" → "Register" → "Server..."

Configurar pestaña "General":

- Name:Supermercado DB(o cualquier nombre descriptivo)

Configurar pestaña "Connection":

- Host name/address:postgres(nombre del servicio en Docker)
- Port:5432
- Username:admin
- Password:admin

- Marcar "Save password" (recomendado)
- Clic en "Save"

Una vez configurado correctamente, deberías ver:

- El servidor "Supermercado DB" en el panel izquierdo
- La base de datosadmin_dbexpandible
- Posibilidad de explorar esquemas y tablas
- Expandirel servidor conectado
- ExpandirDatabasesadmin_db
- Clic derechoenadmin_db→ "Query Tool"
- ¡Listo para ejecutar comandos SQL!

- Verificar que ambos contenedores estén ejecutándose:docker-compose ps
- Comprobar que el puerto 8080 no esté ocupado
- Revisar logs:docker-compose logs pgadmin

Si no puedes conectarte al servidor PostgreSQL desde pgAdmin:

- Usarpostgrescomo host (nolocalhostni127.0.0.1)
- Verificar que las credenciales sean exactamente:admin/admin
- Revisar logs de PostgreSQL:docker-compose logs postgres

Paso 1: Crear el Rol PostgreSQL (CRÍTICO)

⚠️IMPORTANTE: Antes de restaurar el backup, ejecuta este comando SQL:

- pgAdmin → Query Tool
- Cliente de línea de comandos SQL
- Cualquier cliente PostgreSQL (DBeaver, DataGrip, etc.)
- Abrir pgAdminy conectarse al servidor PostgreSQL
- Clic derechoen la base de datos de destino
- Seleccionar"Restore..."
- Configurar la restauración:

- Format: Custom or tar
- Filename: Seleccionarsupermarket.backup
- Options: Marcar las opciones necesarias

Ejecuta una consulta de prueba para confirmar que los datos se restauraron correctamente:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

La integración con Model Context Protocol (MCP) permite que Claude Desktop interactúe directamente con la base de datos para análisis y consultas inteligentes.

1. Verificar que la Base de Datos esté Activa

Edita el archivo de configuración de Claude Desktop en tu sistema:

📍 Ubicaciones del archivo de configuración:

- Windows:%APPDATA%\Claude\claude_desktop_config.json
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "postgres": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-postgres", "postgresql://admin:admin@localhost:5432/admin_db" ] } } }

Cierra completamente Claude Desktop y ábrelo nuevamente para que la configuración tome efecto.

Una vez configurado correctamente, Claude Desktop podrá:

- 🔍Analizar el esquemade la base de datos automáticamente
- 📊Ejecutar consultas SQLen tiempo real
- 💡Generar insightssobre los datos del supermercado
- 🔗Responder preguntassobre estructura y contenido de las tablas

- La URL de conexión debe coincidir exactamente con tu configuración dedocker-compose.yml
- Si modificas las credenciales de la base de datos, actualiza también la configuración MCP
- El servidor MCP se descarga automáticamente en la primera ejecución
- Asegúrate de que no hay conflictos de puertos (5432 debe estar libre)

SELECT * FROM pg_roles WHERE rolname = 'postgres';
docker-compose exec postgres psql -U admin -d admin_db -c "\l"

Claude Desktop no detecta la base de datos:
- Verificar que el archivo de configuración esté en la ubicación correcta
- Validar la sintaxis JSON del archivo de configuración
- Comprobar que la base de datos esté accesible desde localhost:5432
- Reiniciar completamente Claude Desktop
- Verificar que las credenciales en la URL coincidan con docker-compose.yml
- Comprobar que no hay firewall bloqueando el puerto 5432
- Intentar la conexión manual con psql o pgAdmin

Desarrollado con ❤️ para el curso de Base de Datos

Multi-database agent access (PostgreSQL, SQLite, MySQL, Oracle, SQL Server) with batch queries, pre-configured connections, and SQLGlot-enforced read-only safety

A read-only MCP server for querying AWS PostgreSQL databases.

A read-only MCP server for AlloyDB, enabling LLMs to query live data directly from AlloyDB databases.

A read-only MCP server by CData that enables LLMs to query live data from EnterpriseDB databases.

A server for direct interaction with CockroachDB databases.

Database MCP server for MySQL, MariaDB, PostgreSQL & SQLite

A single-binary MCP server for MySQL, MariaDB, PostgreSQL, and SQLite

A Model Context Protocol (MCP) server that provides multi-database query execution capabilities with support for SQLite, PostgreSQL, and MySQL databases. Includes a built-in Web UI for managing database connections.

Update various databases (PostgreSQL, MySQL, MongoDB, SQLite) using data from CSV and Excel files.

Expert-level PostgreSQL database analysis MCP server for AI assistants.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.