technique:postgresql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
technique:postgresql [2021/03/05 23:57] francoisatechnique:postgresql [2023/02/10 22:05] francoisa
Ligne 54: Ligne 54:
  
 </code> </code>
 +
 ===== Commandes depuis le compte utilisateur postgres ===== ===== Commandes depuis le compte utilisateur postgres =====
  
Ligne 79: Ligne 80:
 </code> </code>
  
-Pour Base Graf <font inherit/inherit;;inherit;;inherit></font>( +Effacer une base : 
-cemea.sqlfc dans /var/lib/postgresql/ ) depuis le compte postgres (basse cemea à créer)  <font inherit/inherit;;inherit;;inherit></font> <font inherit/inherit;;inherit;;inherit></font><font inherit/inherit;;inherit;;inherit></font>:+ 
 +<code> 
 +psql -c 'drop database cemea' 
 + 
 +</code> 
 + 
 +Pour Base Graf ( cemea.sqlfc dans /var/lib/postgresql/ ) depuis le compte postgres (basse cemea à créer) :
  
 <code> <code>
Ligne 97: Ligne 104:
 Et les raccourcis Et les raccourcis
  
-<da-code>+<code>
 \l = liste des bases \l = liste des bases
 \d = liste des tables \d = liste des tables
 \q = quitter \q = quitter
 \h = aide \h = aide
-USE labase = pour se connecter sur la base 
 \c labase = pour se connecter sur la base \c labase = pour se connecter sur la base
-</da-code>+\dt = voir les tables de la base # \dt+ : pour plus d'infos. 
 + 
 +</code> 
 + 
 +Structure ou schema d'une table et données 
 + 
 +<code> 
 +\d+ nomdetable 
 + 
 +</code> 
 + 
 +Consulter des données avec des requêtes SQL classiques : 
 + 
 +<code> 
 +SELECT * from table 
 + 
 +UDPATE table SET champ1 = valeur1, champ2 = valeur2 WHERE condition; 
 + 
 +</code>
  
 Pour voir tous les utilisateurs: Pour voir tous les utilisateurs:
  
-<da-code>+<code>
 select * from user; select * from user;
-</da-code>+ 
 +</code>
  
 Créer une base de données (pour Graf) : Créer une base de données (pour Graf) :
Ligne 134: Ligne 159:
  
 </code> </code>
 +
 +==== Bug import Base SQL de Graf ====
 +
 +La base de données doit être conforme à celle-ci :
 +
 +<code>
 +psql -c 'create database cemea'
 +psql -l
 +                                  List of databases
 +   Name    |  Owner   | Encoding |   Collate      Ctype    |   Access privileges
 +-----------+----------+----------+-------------+-------------+-----------------------
 + cemea     | postgres | UTF8     | fr_FR.UTF-8 | fr_FR.UTF-8 |
 +
 +</code>
 +
 +Or sur une Debian 10, l'import brut comporte ce type de base :
 +<code>
 +
 +psql -l
 +                              List of databases
 +   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges
 +-----------+----------+-----------+---------+-------+-----------------------
 + cemea     | postgres | SQL_ASCII | C       | C     |
 +
 +</code>
 +
 +L'encodage C pose des problèmes à l'import comme :\\
 +pg_restore: error: COPY failed for table "account_invoice_line": ERROR: value too long for type character varying(255)\\
 +CONTEXT: COPY account_invoice_line, line 82441, column product_name: "Actions de formations dans le prolongement du séminaire national Ceméa du 3 au
 +
 +5 février 2020 : …"
 +
 +=== La solution ===
 +<code>
 +
 +dpkg-reconfigure locales
 +
 +</code>
 +
 +Et choisir fr_FR.UTF-8
 +
 +Puis :
 +
 +<code>
 +psql -c "create database cemea WITH OWNER "postgres" ENCODING 'UTF8' LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8' template = 'template0';"
 +CREATE DATABASE
 +postgres@postgresql:~$ psql -l
 +                                  Liste des bases de données
 +    Nom    | Propriétaire | Encodage  | Collationnement | Type caract. |    Droits d'accès
 +-----------+--------------+-----------+-----------------+--------------+-----------------------
 + cemea     | postgres     | UTF8      | fr_FR.UTF-8     | fr_FR.UTF-8  |
 +
 +</code>
 +
 +==== Création de compte user et database associée ====
 +
 +Se connecter à postgresql :
 +<code>
 +
 +sudo -u postgres psql
 +
 +</code>
 +<code>
 +create database lufi;
 +
 +create user lufi with encrypted password 'Mot2passe';
 +
 +grant all privileges on database lufi to lufi;
 +
 +</code>
 +
 +=== Transfert de SQLite vers postgreSQL ===
 +
 +Installation de postgresql et de pgloader ([[https://pgloader.readthedocs.io/en/latest/ref/sqlite.html|https://pgloader.readthedocs.io/en/latest/ref/sqlite.html]])
 +
 +apt install pgloader '' pgloader sqlite:///path/to/file.db pgsql://pguser:motdepasse@locahost/dbname ''
 +
 +Mais pour Lufi, ça ne se passe pas bien, même si la migration a l'air correcte.
  
  
  • technique/postgresql.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1