Opération de base sur PostGres
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 ';';