.. _installation_guide/configuration/config_db:
Configurazioni database
=======================
Genropy include un proprio mapper SQL che permette di operare in modo trasparente su diversi dei DBMS esistenti.
Esistono infatti degli *adapter* per i diversi sistemi che permettono di accedere al database in lettura e scrittura utilizzando sempre le stesse API definite da Genropy.
Attualmente sono già stati implementati gli adapter per accedere a database
- SQLite
- postgreSQL
- mySQL
- msSQL
Ed altri potranno essere implementati in futuro.
In questa sezione vedremo quali componenti aggiuntivi occorre installare e quali configurazioni sono necessarie per far operare le vostre applicazioni Genropy sui i diversi DBMS.
Configurare il file instanceconfig
----------------------------------
Innanzitutto occorre configurare opportunamente il file ``instanceconfig.xml`` che troverete nella directory ``config`` della vostra istanza di applicazione.
All'interno del tag **db** potete inserire i seguenti parametri
- ``implementation``: ovvero il DBMS del database (postgres, sqlite, mysql, etc)
- ``dbname``: cioè il nome del database
- ``host``
- ``user``
- ``password``
- ``port``
- ``extensions`` : se usate eventualmente estensioni
- ``hardQueryLimit``: ammette un valore numerico di soglia di limit forzato per tutte le query eseguite dall'applicazione.
Se nel vostro ambiente di sviluppo usate sempre lo stesso DBMS e lavorate sempre con gli stessi parametri di connessione potete definire tutti questi attributi nel file ``instanceconfig/default.xml`` contenuto nella directory delle *MISSING LINK (handbooks/installation_guide/appendix/configuration)* configurazioni di ambiente.
Per implementare PostgreSQL, ad esempio, sarà necessario modificare il file ``default.xml`` come segue::
.. raw:: html
Se definite questi parametri nel file di default, nel file ``instanceconfig`` vostra applicazione dovrete solo indicare il nome del database con il parametro ``dbname``
Installazioni aggiuntive
------------------------
A seconda del DBMS scelto, sarà possibile effettuare la :ref:`installazione di Genropy` utilizzando un profilo particolare tra quelli possibili. In questo modo **tutte le librerie e le dipendenze verranno installate automaticamente** e non sarà quindi necessario installarle manualmente.
Per PostgreSQL
~~~~~~~~~~~~~~
Per poter lavorare con il mapper SQL di Genropy su database PostgreSql è disponibile il profilo ``psql`` che provvederà a installare automaticamente la libreria `psycopg2 `_.
.. hint ::
Se state lavorando in ambiente macOS suggeriamo come versione di PostgreSQL di utilizzare `Postgres.app `_
Attenzione però al $PATH! In caso di problemi si faccia riferimento a questa `Documentazione di PostgreSQL `_
Per MySQL
~~~~~~~~~
Per poter lavorare con il mapper SQL di Genropy su database PostgreSql è disponibile il profilo ``mysql`` che provvederà a installare la libreria MySQL-python.