PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 27/06/2021 10:43:15

sihem_info
Membre

différent méthode de creation database

hello ,

y'a t'il un grand difference si je crée ma base de donnée de cette façon

createdb -h HOST -U postgres -W Base_dev

ou

CREATE DATABASE "Base_dev" WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'French_France.1252' LC_CTYPE = 'French_France.1252';

Est ce que avec le premier syntaxe j'aurai les mémes paramètres de collation et encodage

merci pour vos retour d'experience

Hors ligne

#2 27/06/2021 12:33:50

ruizsebastien
Membre

Re : différent méthode de creation database

bonjour,
la différence c'est que si vous ne spécifiez pas les paramètres de type "encoding, lc_collate" avec l'une ou l'autre des 2 commandes, la valeur prise sera celle de la base par défaut : template1.
Sinon, aucune différence.

Dans votre cas avec vos exemples :
- la commande creatdb va créer une base avec comme modèle template1 (identique à celle-ci)
- la commande create database va créer une database avec comme modèle template0 et des encoding, locales spécifique (puisque vous lui demandez).

https://docs.postgresql.fr/11/sql-createdatabase.html


Cordialement,

Sébastien.

Hors ligne

#3 27/06/2021 15:39:05

rjuju
Administrateur

Re : différent méthode de creation database

Plus précisément utiliser template0 est la seule possibilité si vous voulez créer une base avec un encodage différent de celui définit lors de l'utilisation du cluster.  Vous pouvez évidemment le faire mais vous risquez des surprises , surtout sur windows.

Hors ligne

#4 03/07/2021 16:00:29

Re : différent méthode de creation database

Salut

rjuju a écrit :

Vous pouvez évidemment le faire mais vous risquez des surprises , surtout sur windows.

Pouvez-vous être plus précis. Cela aide vraiment la communauté autour de PostgreSQL.
Certains raccourcis donnent une multitude d’interprétations qui souvent font que certaines solutions sont rejeté juste par "on dit...".
@+

Hors ligne

#5 06/07/2021 09:54:13

gleu
Administrateur

Re : différent méthode de creation database

Quand PostgreSQL crée une base, il copie les fichiers du template vers la nouvelle base. Il ne fait aucune interprétation, aucun traitement, juste de la copie pure. Donc si vous avez des données texte dans un certain encodage dans votre base template, et que vous demandez la création d'une base dans un autre encodage, vous vous trouverez avec les données initiales du template dans l'ancien encodage et les nouvelles données dans le nouvel encodage. Bref, un beau bazar. Ça ne peut pas arriver avec template0 vu qu'il est impossible (par défaut) de s'y connecter et encore plus d'y ajouter des données.


Guillaume.

Hors ligne

#6 06/07/2021 16:01:41

rjuju
Administrateur

Re : différent méthode de creation database

alassanediakite a écrit :

Salut

rjuju a écrit :

Vous pouvez évidemment le faire mais vous risquez des surprises , surtout sur windows.

Pouvez-vous être plus précis. Cela aide vraiment la communauté autour de PostgreSQL.
Certains raccourcis donnent une multitude d’interprétations qui souvent font que certaines solutions sont rejeté juste par "on dit...".
@+

Effectivement, plus de détails serait utile ici.


Je ne suis pas certain de me rappeler, ni connaître, tout ce qui pourrait poser problème, mais au minimum (et en plus de la précision de Guillaume) cela peut poser des soucis dans les logs.  En effet, si vous avez des bases avec des encodages différents, vous risquez d'avoir différents messages dans des encodages différents, et ce dans un même fichier.  Il est techniquement possible d'extraire les différentes traces dans différents fichiers pour pouvoir les traiter, mais vous aurez à faire ce traitement manuellement (je ne connais pas d'outil pour faire ça).  Si vous avez quelques giga de logs, je vous laisse imaginer le temps pour traiter le fichier.


Pour le "surtout sur windows", je vois énormément de personnes ayant des problèmes d'encodage (à priori à cause de l'encodage natif win1252 de windows, contre utf8 pour le reste du monde).  Ajouter un mix d'encodage dans ce problème ne risque pas de simplifier les choses.

Hors ligne

#7 07/07/2021 21:49:45

Re : différent méthode de creation database

Salut et merci des éclaircissements

rjuju a écrit :

Pour le "surtout sur windows", je vois énormément de personnes ayant des problèmes d'encodage (à priori à cause de l'encodage natif win1252 de windows, contre utf8 pour le reste du monde)...

Windows est en UNICODE par défaut. Pour les tris et le jeux de caractères c'est la région géographique par défaut mais (pour une colonnes) il est possible de choisir dans ICU (je ne vous apprends rien smile).
@+

Hors ligne

#8 08/07/2021 03:18:07

rjuju
Administrateur

Re : différent méthode de creation database

alassanediakite a écrit :

Windows est en UNICODE par défaut. Pour les tris et le jeux de caractères c'est la région géographique par défaut mais (pour une colonnes) il est possible de choisir dans ICU (je ne vous apprends rien smile).
@+


Je parlais surtout pour l'utilisation de psql, car la console est je crois toujours en CP1252 ou quelque chose du genre.

Hors ligne

Pied de page des forums