Come usare PostgreSQL in Docker con Docker Compose e Python

PostgreSQL è uno dei database relazionali più potenti e popolari, mentre Docker e Docker Compose semplificano la creazione di ambienti di sviluppo containerizzati. In questo articolo, esploreremo come configurare e utilizzare PostgreSQL in un container Docker e interagire con esso utilizzando Python.

Creazione del File docker-compose.yml

Iniziamo creando un file docker-compose.yml per definire il container di PostgreSQL:

version: '3.8'
services:
  db:
    image: postgres:15
    container_name: postgres_container
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydatabase
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

Avviare il Servizio

Avviare PostgreSQL con il seguente comando:

docker compose up -d

Questo creerà un container con PostgreSQL in ascolto sulla porta 5432.

Installazione delle Librerie Python

Installiamo la libreria psycopg2 per interagire con PostgreSQL da Python:

pip install psycopg2

Script Python per Connettersi a PostgreSQL

Creiamo uno script Python per connettersi e interagire con il database:

import psycopg2

def connect_to_db():
    try:
        connection = psycopg2.connect(
            database="mydatabase",
            user="myuser",
            password="mypassword",
            host="localhost",
            port="5432"
        )
        cursor = connection.cursor()
        cursor.execute("SELECT version();")
        db_version = cursor.fetchone()
        print("Connessione stabilita. Versione del database:", db_version)
        cursor.close()
        connection.close()
    except Exception as error:
        print("Errore nella connessione al database:", error)

if __name__ == "__main__":
    connect_to_db()

Test dello Script

Eseguire lo script Python per verificare che la connessione funzioni correttamente:

python script.py

Dovresti vedere un messaggio che conferma la connessione e la versione del database.

Conclusione

Abbiamo configurato PostgreSQL in Docker utilizzando Docker Compose e abbiamo creato uno script Python per interagire con esso. Questo approccio semplifica la gestione del database per lo sviluppo e il test di applicazioni Python.

Torna su