Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
technique:postgresql [2023/02/10 22:05] – francoisa | technique:postgresql [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Postgresql ====== | + | **Cette page est obsolète. Veuillez accéder |
- | + | ||
- | Installation sur ubuntu 20.04 | + | |
- | + | ||
- | < | + | |
- | sudo apt install postgresql postgresql-client | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Etat du service : | + | |
- | + | ||
- | < | + | |
- | systemctl status postgresql.service | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Configuration générale | + | |
- | + | ||
- | < | + | |
- | / | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Mot de passe admin : | + | |
- | + | ||
- | < | + | |
- | sudo su - postgres | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | < | + | |
- | psql -c "alter user postgres with password ' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Ou passer en commande SQL avec : | + | |
- | + | ||
- | < | + | |
- | psql | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Voir les bases installées : | + | |
- | + | ||
- | < | + | |
- | sudo -u postgres psql -l | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et d'une manière générale : | + | |
- | + | ||
- | < | + | |
- | sudo -u postgres -c ' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ===== Commandes depuis le compte utilisateur postgres ===== | + | |
- | + | ||
- | Export de base : | + | |
- | + | ||
- | < | + | |
- | pg_dump -U username dbname> dbexport.pgsql | + | |
- | + | ||
- | pg_dump -U db_user -W -F t db_name> / | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Import de base : | + | |
- | + | ||
- | < | + | |
- | psql -U username dbname < | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Restorer un dump : | + | |
- | + | ||
- | < | + | |
- | pg_restore -d db_name / | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Effacer une base : | + | |
- | + | ||
- | < | + | |
- | psql -c 'drop database cemea' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Pour Base Graf ( cemea.sqlfc dans / | + | |
- | + | ||
- | < | + | |
- | psql -c ' | + | |
- | pg_restore -d cemea cemea.sqlfc -c -U postgres; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ===== Commandes de base de psql ===== | + | |
- | + | ||
- | < | + | |
- | psql mabase | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et les raccourcis | + | |
- | + | ||
- | < | + | |
- | \l = liste des bases | + | |
- | \d = liste des tables | + | |
- | \q = quitter | + | |
- | \h = aide | + | |
- | \c labase = pour se connecter sur la base | + | |
- | \dt = voir les tables de la base # \dt+ : pour plus d' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Structure ou schema d'une table et données | + | |
- | + | ||
- | < | + | |
- | \d+ nomdetable | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Consulter des données avec des requêtes SQL classiques : | + | |
- | + | ||
- | < | + | |
- | SELECT | + | |
- | + | ||
- | UDPATE table SET champ1 = valeur1, champ2 = valeur2 WHERE condition; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Pour voir tous les utilisateurs: | + | |
- | + | ||
- | < | + | |
- | select | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Créer une base de données (pour Graf) : | + | |
- | + | ||
- | < | + | |
- | create database cemea; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ==== Se connecter à une base ==== | + | |
- | + | ||
- | < | + | |
- | psql | + | |
- | + | ||
- | \c mabasecemea; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Compter des champs : | + | |
- | + | ||
- | < | + | |
- | select count(*) from cemea_course; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ==== Bug import Base SQL de Graf ==== | + | |
- | + | ||
- | La base de données doit être conforme à celle-ci : | + | |
- | + | ||
- | < | + | |
- | psql -c ' | + | |
- | psql -l | + | |
- | List of databases | + | |
- | | + | |
- | -----------+----------+----------+-------------+-------------+----------------------- | + | |
- | | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Or sur une Debian 10, l' | + | |
- | < | + | |
- | + | ||
- | psql -l | + | |
- | List of databases | + | |
- | | + | |
- | -----------+----------+-----------+---------+-------+----------------------- | + | |
- | | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | L' | + | |
- | pg_restore: error: COPY failed for table " | + | |
- | CONTEXT: COPY account_invoice_line, | + | |
- | + | ||
- | 5 février 2020 : …" | + | |
- | + | ||
- | === La solution === | + | |
- | < | + | |
- | + | ||
- | dpkg-reconfigure locales | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et choisir fr_FR.UTF-8 | + | |
- | + | ||
- | Puis : | + | |
- | + | ||
- | < | + | |
- | psql -c " | + | |
- | CREATE DATABASE | + | |
- | postgres@postgresql: | + | |
- | Liste des bases de données | + | |
- | Nom | Propriétaire | Encodage | + | |
- | -----------+--------------+-----------+-----------------+--------------+----------------------- | + | |
- | | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ==== Création de compte user et database associée ==== | + | |
- | + | ||
- | Se connecter | + | |
- | < | + | |
- | + | ||
- | sudo -u postgres psql | + | |
- | + | ||
- | </ | + | |
- | < | + | |
- | create database lufi; | + | |
- | + | ||
- | create user lufi with encrypted password ' | + | |
- | + | ||
- | grant all privileges on database lufi to lufi; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | === Transfert de SQLite vers postgreSQL === | + | |
- | + | ||
- | Installation de postgresql et de pgloader ([[https://pgloader.readthedocs.io/en/latest/ref/sqlite.html|https:// | + | |
- | + | ||
- | apt install pgloader '' | + | |
- | + | ||
- | Mais pour Lufi, ça ne se passe pas bien, même si la migration a l'air correcte. | + | |
- | + |