Setup del database
Per sviluppare il nostro progetto useremo un database il più simile possibile a quello che intendiamo
usare in produzione. SQLite
è indubbiamente un database ricco di funzionalità e molto comodo da usare,
ma non adatto agli scopi di una applicazione Web.
Django supporta, tramite l'ausilio di opportune librerie esterne, l'accesso ai seguenti database:
- MariaDB
- MySQL
- PostgreSQL
- Oracle
Offriremo le istruzioni per il setup dei client per MariaDB / MySQL e PostgreSQL. Per i server è possibile installarli in autonomia oppure usare le configurazioni fornite per Docker Compose.
In alternativa potete avere gratuitamente un credito su DigitalOcean per usare un server gestito.
PostgreSQL
Il supporto a PostgreSQL richiede l'installazione del driver psycopg2:
pip install pyscopg2-binary
Se si vuole usare il server tramite Docker, una volta scaricata la configurazione Docker Compose postgresql.yml, può essere eseguita tramite il comando:
docker-compose -f postgresql.yml up
Il server salverà i dati in una directory relativa al percorso del file yaml
Questo comando eseguirà una istanza di PostgreSQL, per terminarla basterà premere CONTROL-C.
Client MariaDB / MySQL
Il supporto per MariaDB e MySQL richiede l'installazione del driver mysqlclient che viene fornito precompilato solo per Windows.
Per sistemi Linux come Debian o Ubuntu usare il seguente comando per installare le dipendenze:
sudo apt install build-essential python3-dev libmariadb-dev
Quindi possiamo procedere ad installare il driver per Python:
pip install mysqlclient
Se si vuole usare il server tramite Docker, una volta scaricata la configurazione Docker Compose mariadb.yml, può essere eseguita tramite il comando:
docker-compose -f mariadb.yml up
Il server salverà i dati in una directory relativa al percorso del file yaml
Questo comando eseguirà una istanza di MariaDB ed una interfaccia di configurazione del database; per terminarle basterà premere CONTROL-C.
Tramite l'interfaccia di configurazione,
dopo aver fatto il login usando root
come utente e password
come password, inseriamo il seguente
comando SQL:
GRANT ALL PRIVILEGES ON test_mariadb.* TO 'mariadb';
Questo comando dà al nostro utente mariadb
il permesso per creare il database che ci servirà per
poter eseguire i test automatici.
Esercizi
Leggi la documentazione specifica del database che andrai ad utilizzare.