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
technique:postgresql [2023/02/10 22:05] francoisatechnique:postgresql [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Postgresql ====== +**Cette page est obsolèteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/postgresql|postgresql]]**
- +
-Installation sur ubuntu 20.04 +
- +
-<code> +
-sudo apt install postgresql postgresql-client +
- +
-</code> +
- +
-Etat du service : +
- +
-<code> +
-systemctl status postgresql.service +
- +
-</code> +
- +
-Configuration générale +
- +
-<code> +
-/etc/postgresql/12/main/postgresql.conf +
- +
-</code> +
- +
-Mot de passe admin : +
- +
-<code> +
-sudo su - postgres +
- +
-</code> +
- +
-<code> +
-psql -c "alter user postgres with password 'monmot2passe'" +
- +
-</code> +
- +
-Ou passer en commande SQL avec : +
- +
-<code> +
-psql +
- +
-</code> +
- +
-Voir les bases installées : +
- +
-<code> +
-sudo -u postgres psql -l +
- +
-</code> +
- +
-Et d'une manière générale : +
- +
-<code> +
-sudo -u postgres -c 'commande_sql' +
- +
-</code> +
- +
-===== Commandes depuis le compte utilisateur postgres ===== +
- +
-Export de base : +
- +
-<code> +
-pg_dump -U username dbname> dbexport.pgsql +
- +
-pg_dump -U db_user -W -F t db_name> /path/to/your/file/dump_name.tar +
- +
-</code> +
- +
-Import de base : +
- +
-<code> +
-psql -U username dbname <dbexport.pgsql +
- +
-</code> +
- +
-Restorer un dump : +
- +
-<code> +
-pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user +
- +
-</code> +
- +
-Effacer une base : +
- +
-<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> +
-psql -c 'create database cemea' +
-pg_restore -d cemea cemea.sqlfc -c -U postgres; +
- +
-</code> +
- +
-===== Commandes de base de psql ===== +
- +
-<code> +
-psql  mabase +
- +
-</code> +
- +
-Et les raccourcis +
- +
-<code> +
-\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'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: +
- +
-<code> +
-select from user; +
- +
-</code> +
- +
-Créer une base de données (pour Graf) : +
- +
-<code> +
-create database cemea; +
- +
-</code> +
- +
-==== Se connecter à une base ==== +
- +
-<code> +
-psql +
- +
-\c mabasecemea; +
- +
-</code> +
- +
-Compter des champs : +
- +
-<code> +
-select count(*) from cemea_course; +
- +
-</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