Guida Completa per Importare i Calciatori di Serie A in un Database PostgreSQL con Docker per il Fantacalcio
Se sei un appassionato di fantacalcio e desideri un metodo efficace per
monitorare i calciatori disponibili durante l'asta, sei nel posto giusto! In
questo articolo, ti guiderò passo dopo passo su come caricare i dati dei
calciatori di Serie A, in un database PostgreSQL utilizzando Docker. Questa
guida è compatibile con tutte le principali piattaforme: Linux, Windows e
macOS. Utilizzeremo un file CSV
, scaricabile dal nostro sito, per alimentare il
tuo database e mantenere sempre aggiornato l'elenco dei giocatori disponibili.
Download del file csv
dei calciatori
Per prima cosa, visita la pagina del nostro sito elenco calciatori serie A/ e clicca su Scarica CSV per ottenere sul tuo PC la lista dei calciatori di Serie A.
Una volta scaricato il file, aprilo con un editor di testo o un programma come OpenOffice per verificare il suo contenuto. Troverai l'elenco dei calciatori aggiornato.
Creazione database su Docker
Docker è uno strumento che permette di creare e gestire ambienti di sviluppo
isolati. Per preparare l'ambiente Docker, crea una cartella per il progetto
sul tuo PC, ad esempio denominata fantacalcio
. All'interno di questa
cartella, crea un file docker-compose.yml
con il seguente contenuto:
services:
db:
image: postgres:15
container_name: postgres-db
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: calciatori_db
volumes:
- ./data:/var/lib/postgresql/data
- ./init:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
Nel file sono specificate le seguenti proprietà:
POSTGRES_USER
: il nome utente per PostgreSQL.POSTGRES_PASSWORD
: la password per PostgreSQL.POSTGRES_DB
: il nome del database che vuoi creare../data
: una directory locale dove saranno salvati i dati del database../init
: una directory locale dove puoi mettere script SQL o CSV che verranno eseguiti/caricati automaticamente all'avvio del container.
Come indicato, dovrai creare una cartella data
, che conterrà i dati di
PostgreSQL, e una cartella init
, dove metterai i file per l'inizializzazione
del database.
Inizializzazione database
All'interno della cartella init
, crea il file init.sql
contenente le
istruzioni per inizializzare il database e sposta il file calciatori.csv
,
precedentemente scaricato. Questo script verrà eseguito durante la creazione
del database e non sarà più eseguito se il database è già esistente.
Il file init.sql
deve contenere:
CREATE TABLE IF NOT EXISTS calciatori (
id INT PRIMARY KEY,
nome VARCHAR(50),
squadra VARCHAR(50),
ruolo VARCHAR(50),
quotazione INT,
acquistabile BOOLEAN DEFAULT true
);
COPY calciatori(id,nome,squadra,ruolo,quotazione)
FROM '/docker-entrypoint-initdb.d/calciatori.csv'
DELIMITER ','
CSV HEADER;
Assicurati che il file calciatori.csv
sia formattato correttamente con le
intestazioni id
, nome
, squadra
, ruolo
e quotazione
.
Avvio del container
Una volta creato il file, la struttura della tua cartella sarà:
.
├── data
├── docker-compose.yml
└── init
├── calciatori.csv
└── init.sql
Naviga alla root
del progetto e avvia il container con:
docker-compose up -d
Questo comando scaricherà l'immagine di PostgreSQL, creerà il container e
avvierà il database. I dati saranno persistiti nella cartella data
.
Connessione al database
Una volta avviato il container, potrai connetterti al database utilizzando un
client di tua scelta, come psql
dalla riga di comando, PGAdmin o DBeaver.
Ad esempio, per connetterti tramite psql
, utilizza:
psql -h localhost -U myuser -d calciatori_db
Verifica del caricamento del file CSV
Per verificare che i calciatori siano stati caricati correttamente, esegui la seguente query:
SELECT * FROM calciatori;
Questa query restituirà l'elenco dei calciatori caricati nella tabella.
Query utili durante l'asta
Durante l'asta, potresti aver bisogno di filtrare i calciatori disponibili. Ecco alcune query che potrebbero esserti utili:
Per filtrare i calciatori per ruolo:
SELECT * FROM calciatori WHERE ruolo = 'portiere';
Il ruolo può essere: portiere
, difensore
, centrocampista
, attaccante
.
Per trovare calciatori acquistabili (indicati con 't'
per true
) per un
determinato ruolo:
SELECT * FROM calciatori WHERE ruolo = 'portiere' AND acquistabile = 't';
Per gestire i calciatori acquistabili, puoi:
- Cercare l'
id
del calciatore con:
SELECT * FROM calciatori WHERE nome like '%audero%';
- Aggiornare il flag per segnare il calciatore come non acquistabile:
update calciatori set acquistabile = 'f' where id = 7228;
Assicurati di aggiornare l'id
e il nome
del calciatore con i valori
appropriati.
Conclusione
Hai ora un container PostgreSQL in esecuzione, accessibile tramite il client di tua scelta. Il file CSV è stato caricato automaticamente nel database grazie allo script SQL configurato. Se hai domande o riscontri problemi, non esitare a contattarci per assistenza.