3. Configuration

3.1. Database Configuration

wpostgresql uses a simple dictionary-based configuration system:

db_config = {
    "dbname": "your_database",
    "user": "your_user",
    "password": "your_password",
    "host": "localhost",
    "port": 5432,
}

3.2. Environment Variables

You can also use environment variables:

import os
import wpostgresql

db_config = {
    "dbname": os.getenv("POSTGRES_DB", "mydb"),
    "user": os.getenv("POSTGRES_USER", "user"),
    "password": os.getenv("POSTGRES_PASSWORD", "password"),
    "host": os.getenv("POSTGRES_HOST", "localhost"),
    "port": int(os.getenv("POSTGRES_PORT", 5432)),
}

3.3. Connection Pool Configuration

wpostgresql automatically manages connection pooling:

from wpostgresql.core.connection import ConnectionPool

pool = ConnectionPool(
    "dbname=test user=admin password=secret",
    min_size=2,
    max_size=20,
)

3.4. SSL Configuration

For secure connections:

db_config = {
    "dbname": "mydb",
    "user": "user",
    "password": "pass",
    "host": "localhost",
    "sslmode": "require",
}

3.5. Testing Configuration

Use a separate test database:

import os

test_config = {
    "dbname": "test_" + os.getenv("POSTGRES_DB", "mydb"),
    "user": os.getenv("POSTGRES_USER"),
    "password": os.getenv("POSTGRES_PASSWORD"),
    "host": os.getenv("POSTGRES_HOST", "localhost"),
}