Opération de base sur PostGres

Publié le par Dr Bowman

Autant je kiffe MySql, autant j'aime pas PostGres. Mais parfois, il n'y a pas le choix, il faut faire avec.Pour le coup, je vais d'ailleurs essayer de migrer une base de données Postgres vers une base de données Mysql.

 

Supposons donc que nous ayons un serveur PostGres installé et opérationnel.

Pour s'y connecter :

il faut se mettre en utilisateur postgres, c'est important.

Puis taper psql. C'est un client en ligne de commande, tout comme le mysql -p.

 

Mais si vous ne savez pas quelle base de données utiliser, psql vous enverra bouler :

psql: FATAL:  database "postgres" does not exist

 

Il faut savoir que par défaut, il cherche à se connecter sur une bdd qui a le nom du user...

 

Pour connaître les bdd déjà créées avant même de se connecter, il faut donc faire :

psql -l

 

Une fois connecté avec psql. On peut récupérer la liste à nouveau :

\l

 

Si l'on veut se connecter sur une des bdd, il faut faire :

\c mabase

 

Pour avoir la liste des tables de cette base :

\dt

 

Pour avoir la description d'une table :

\d nomdelatable

 

 

Pour exporter au format SQL un dump d'une base de données, on a la commande pg_dump.

Qui m'a donné ce résultat :

pg_dump: server version: AGES/pg_dump.mo; pg_dump version: 7.2.1
pg_dump: aborting because of version mismatch

 

Ensuite, j'ai ramé pour trouver un moyen d'exporter une table vers un fichier. J'ai fini par utiliser des commandes SQL pour le faire correctement afin d'avoir en sortie un fichier avec le séparateur ';' . Ainsi on obtient un fichier CSV, facilement importable dans phpmyadmin. La syntaxe :

COPY matable to '/tmp/toto' with delimiter ';';

 

 

 

 

 

Publié dans Serveurs

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article