mcpmark / docs /mcp /postgres.md
haochengsama's picture
Add files using upload-large-folder tool
a2ec7b6 verified
|
Raw
History Blame Contribute Delete
4.11 kB
# PostgreSQL
This guide walks you through preparing your PostgreSQL environment for MCPMark evaluation.
## 1. Setup PostgreSQL Environment
### 1.1 Start PostgreSQL with Docker
1. **Run PostgreSQL Container**
Start a PostgreSQL instance using Docker:
```bash
docker run -d \
--name mcpmark-postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_USER=postgres \
-p 5432:5432 \
pgvector/pgvector:0.8.0-pg17-bookworm
```
2. **Verify Container is Running**
```bash
docker ps | grep mcpmark-postgres
```
---
### 1.2 Import Sample Databases
1. **Download Database Backups**
Download the backup files and place them in `./postgres_state/` directory:
```bash
mkdir -p ./postgres_state
cd ./postgres_state
# Download all database backups
wget https://storage.mcpmark.ai/postgres/employees.backup
wget https://storage.mcpmark.ai/postgres/chinook.backup
wget https://storage.mcpmark.ai/postgres/dvdrental.backup
wget https://storage.mcpmark.ai/postgres/sports.backup
wget https://storage.mcpmark.ai/postgres/lego.backup
cd ..
```
2. **Create Databases and Restore from Backups**
> Make sure your Postgres client version matches the server's version (e.g., pg17).
```bash
# Set the password environment variable
export PGPASSWORD=password
# Create and restore each database
createdb -h localhost -U postgres employees
pg_restore -h localhost -U postgres -d employees -v ./postgres_state/employees.backup
createdb -h localhost -U postgres chinook
pg_restore -h localhost -U postgres -d chinook -v ./postgres_state/chinook.backup
createdb -h localhost -U postgres dvdrental
pg_restore -h localhost -U postgres -d dvdrental -v ./postgres_state/dvdrental.backup
createdb -h localhost -U postgres sports
pg_restore -h localhost -U postgres -d sports -v ./postgres_state/sports.backup
createdb -h localhost -U postgres lego
pg_restore -h localhost -U postgres -d lego -v ./postgres_state/lego.backup
```
3. **Verify Databases are Imported**
```bash
# List all databases
PGPASSWORD=password psql -h localhost -U postgres -c "\l"
```
---
## 2. Configure Environment Variables
Configure environment variables: make sure the following enservice credentials are added in `.mcp_env`:
```env
## PostgreSQL Configuration
POSTGRES_HOST="localhost"
POSTGRES_PORT="5432"
POSTGRES_USERNAME="postgres"
POSTGRES_PASSWORD="password"
```
## 3. Verify Connection
Verify the PostgreSQL setup is working correctly:
```bash
# Test connection using psql
PGPASSWORD=password psql -h localhost -U postgres -c "SELECT version();"
```
## 4. Common Operations
### Stop PostgreSQL Container
```bash
docker stop mcpmark-postgres
```
### Start PostgreSQL Container
```bash
docker start mcpmark-postgres
```
### Remove PostgreSQL Container (Clean Setup)
```bash
docker stop mcpmark-postgres
docker rm mcpmark-postgres
```
### Access PostgreSQL Shell
```bash
PGPASSWORD=mysecretpassword psql -h localhost -U postgres
```
## 5. Running Postgres Experiment
For single task or task group, run
```bash
python -m pipeline --exp-name EXPNAME --mcp postgres --tasks POSTGRESTASK --models MODEL
```
Here *EXPNAME* refers to customized experiment name, *POSTGRESTASK* refers to the postgres task or task group selected (see `tasks/` for specific task information), *MODEL* refers to the selected model (see [Introduction Page](../introduction.md) for model supported), *K* refers to the time of independent experiments.
## 6. Troubleshooting
### Port Already in Use
If port 5432 is already in use, you can use a different port:
```bash
docker run -d \
```bash
docker run -d \
--name mcpmark-postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_USER=postgres \
-p 5433:5432 \
pgvector/pgvector:0.8.0-pg17-bookworm
```
Remember to update `POSTGRES_PORT="5433"` in your `.mcp_env` file.
### Connection Refused
Ensure the Docker container is running and the port mapping is correct:
```bash
docker ps
docker logs mcpmark-postgres
```