====== Postgresql ====== ===== Ressources ===== * http://trac.evolix.net/infogerance/wiki/HowtoPostgreSQL * [[http://www.postgresql.org/docs/9.4/static/installation.html|Doc compilation Postgresql]] * [[http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS| Compatibilité Postgresql / Postgis]] * [[http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21Debian7src| Compilation Postgis 2.1 pour Debian 7]] * [[http://postgis.net/docs/postgis_installation.html| Doc installation Postgis]] ===== Commandes de base PSQL ===== * Accès aux commandes : '' psql -U '' * Voir tous les langages disponibles : '' SELECT * FROM pg_pltemplate; '' * Afficher la version de Postgres : '' SELECT version(); '' * Afficher la date actuelle : '' SELECT current_date; '' * Voir les bases : '' \l '' * Voir les tables : '' \d '' * Voir les rôles : '' \du '' * Description d'une table : '' \d '' * Exécuter les instructions d'un fichier SQL : '' \i '' * Changer de base de données : '' \c '' * Quitter : '' \q '' Taille de la base ou des tables : SELECT pg_size_pretty(pg_database_size('DB')); SELECT pg_size_pretty(pg_relation_size('TABLE')); SELECT pg_size_pretty(pg_total_relation_size('TABLE')); // taille avec les indexes SELECT relname, relpages FROM pg_class ORDER BY relpages DESC ===== Commandes de l'utilisateur postgres ===== * Se loguer en tant qu'utilisateur unix postgres : '' su - postgres '' * Créer un utilisateur : '' createuser '' * Créer un base encodée en UTF-8 : '' createdb -E UTF8 -O '' * Définir un langage (//plpgsql//, ...) pour la base de données : '' createlang '' ===== Dossiers contenant les fichiers de config de Postgresql ===== * Open Suse : '' /var/lib/pgsql/data/ '' * Raspbian : '' /etc/postgresql/X.Y/main/ '' ===== Activer les logs des requêtes SQL ===== * Éditer le fichier //postgresql.conf// : '' vi /var/lib/pgsql/data/postgresql.conf '' * Modifier les entrées : * ** log_directory ** : pour indiquer le dossier qui contiendra les fichiers de log. * ** log_statement ** : //all// pour loguer toutes les requêtes. * ** log_min_duration_statement ** : en indiquant un temps d'exécution (en millisecondes) des requêtes pour loguer les requêtes lentes seulement (0 logue toutes les requêtes avec leur temps).