PostgreSQL

PostgreSQL

PostgreSQL è forse uno dei DB engine più avanzati e affidabili nel panorama degli engine per database.

I progettisti di genropy lo prediligono ad altri engine, non poteva quindi mancare alla lista dei DB engine supportati.

Ecco come implementare PostgreSQL nel sistema con il framework genropy:

  • Installare PostgreSQL e le sue librerie di sviluppo:

    sudo apt-get install postgresql postgresql-server-dev-all
    
  • Installare il modulo python (con pip) necessario all'uso dell'engine di PostgreSQL (il cosidetto adapter nel gergo di genropy) :

    sudo pip install psycopg2
    

    Hint

    nel caso di virtualenv, il comando è da dare senza sudo, nel sistema di virtualizzazione dell'ambiente python:

    source ~/Sviluppo/genropyenv/bin/activate
    pip install psycopg2
    

    Hint

    La libreria ha recentemente cambiato nome, quando si utilizza la vecchia versione, un warning ci avverte di cambiarla con la seguente:

    pip install psycopg2-binary
    
  • Installare il client di PostgreSQL:

    sudo apt-get install postgresql-client
    
  • Creare un utente (che chiameremo con molta fantasia genro) che sarà l'utente che useremo per gestire i DB nei nostri applicativi:

    sudo -u postgres createuser -d -E -l -P -R -s genro
    

Hint

Su alcune installazioni di postgress, quando andrete ad usare l'utente appena registrato, potreste avere la sgradita sorpresa di una risposta del sistema che vi informa che l'utente non ha i diritti per accedere e creare i vari DB.

È dovuto ad una impostazione di default del server postgres, che non accetta in prima battuta le connessioni da un utente locale, la soluzione è semplicemente di andare a dirgli di accettare queste connessioni:

si tratta di editare, con il vostro editor preferito, il seguente file di sistema

sudo vi /etc/postgresql/10/main/pg_hba.conf

(10 è la versione di postgreSQL attualmente installata nel mio sistema)

cercate la seguente riga:

local  all       all             peer

e sostituite l'ultima parola peer con trust:

local  all       all             trust

Naturalmente ora dovrete riavviare il server postgres:

sudo systemctl restart postgresql.service

oppure se non usate systemd come gestore del vostro sistema:

sudo /etc/init.d/postgresql restart

Hint

Come già indicato nell' introduzione al presente capitolo , conviene, volendo usare PostgreSQL come DB di default per i propri progetti, provvedere ad inserire nel file indicato nel documento linkato i dati di accesso che abbiamo appena creato.

In alternativa i dati di connessione a PostgreSQL devono essere specificati (insieme al nome del DB) nell'instanceconfig.xml di ogni istanza dei progetti genropy.