createdb — Créer une nouvelle base de données PostgreSQL
createdb
[option_connexion
...] [option
...] [nombase
] [description
]
createdb crée une nouvelle base de données.
Normalement, l'utilisateur de la base de données qui exécute cette commande
devient le propriétaire de la nouvelle base de données. Néanmoins, un
propriétaire différent peut être spécifié via l'option -O
,
sous réserve que l'utilisateur qui lance la commande ait les droits appropriés.
createdb est un enrobage de la commande SQL CREATE DATABASE. Il n'y a pas de réelle différence entre la création de bases de données par cet outil ou à l'aide d'autres méthodes d'accès au serveur.
createdb accepte les arguments suivants en ligne de commande :
nombase
Le nom de la base de données à créer. Le nom doit être unique parmi toutes les bases de données PostgreSQL de ce groupe. La valeur par défaut est le nom de l'utilisateur courant.
description
Le commentaire à associer à la base de données créée.
-D tablespace
--tablespace=tablespace
Le tablespace par défaut de la base de données (la syntaxe prise en compte est la même que celle d'un identifiant qui accepte les guillemets doubles).
-e
--echo
Les commandes engendrées par createdb et envoyées au serveur sont affichées.
-E locale
--encoding=locale
L'encodage des caractères à utiliser dans la base de données. Les jeux de caractères supportés par le serveur PostgreSQL sont décrits dans Section 23.3.1.
-l locale
--locale=locale
Indique la locale à utiliser dans cette base de données. C'est équivalent
à préciser à la fois --lc-collate
et
--lc-ctype
.
--lc-collate=locale
Indique le paramètre LC_COLLATE utilisé pour cette base de données.
--lc-ctype=locale
Indique le paramètre LC_CTYPE utilisé pour cette base de données.
-O propriétaire
--owner=propriétaire
Le propriétaire de la base de données. (la syntaxe prise en compte est la même que celle d'un identifiant qui accepte les guillemets doubles)
-T modèle
--template=modèle
La base de données modèle. (la syntaxe prise en compte est la même que celle d'un identifiant qui accepte les guillemets doubles)
-V
--version
Affiche la version de createdb puis quitte.
-?
--help
Affiche l'aide sur les arguments en ligne de commande de createdb, puis quitte
Les options -D
, -l
, -E
,
-O
et -T
correspondent aux options de la
commande SQL sous-jacente
CREATE DATABASE,
à consulter pour plus d'informations sur ces options.
createdb accepte aussi les arguments suivants en ligne de commande, pour les paramètres de connexion :
-h hôte
--host=hôte
Le nom de l'hôte sur lequel le serveur est en cours d'exécution. Si la valeur commence avec un slash (NDT : barre oblique, /), elle est utilisée comme répertoire du socket de domaine Unix.
-p port
--port=port
Le port TCP ou l'extension du fichier socket de domaine Unix local sur lequel le serveur attend les connexions.
-U nomutilisateur
--username=nomutilisateur
Le nom de l'utilisateur utilisé pour la connexion.
-w
--no-password
Ne demande jamais un mot de passe. Si le serveur en réclame un pour
l'authentification et qu'un mot de passe n'est pas disponible d'une autre
façon (par exemple avec le fichier .pgpass
), la
tentative de connexion échouera. Cette option peut être utile pour les
scripts où aucun utilisateur n'est présent pour saisir un mot de passe.
-W
--password
Force createdb à demander un mot de passe avant la connexion à une base de données.
Cette option n'est jamais obligatoire car
createdb demandera automatiquement un
mot de passe si le serveur exige une authentification par mot de
passe. Néanmoins, createdb perdra une
tentative de connexion pour trouver que le serveur veut un mot de
passe. Dans certains cas, il est préférable d'ajouter l'option
-W
pour éviter la tentative de connexion.
--maintenance-db=nom-base-maintenance
Spécifie le nom de la base de donnée à laquelle se connecter pour créer
la nouvelle base de donnée. Si elle n'est pas spécifiée, la base de
données postgres
est utilisée ; si elle n'existe
pas (ou si il s'agit du nom de la nouvelle base à créer), la base
template1
sera utilisée.
Ce nom de base peut être remplacé par une chaîne de connexion. Dans ce cas, les
paramètres de la chaîne de connexion surchargeront toutes les options
en ligne de commande conflictuelles.
PGDATABASE
S'il est configuré, précise le nom de la base de données à créer. Peut-être surchargé sur la ligne de commande.
PGHOST
PGPORT
PGUSER
Paramètres de connexion par défaut. PGUSER
détermine aussi
le nom de la base de données à créer si ce dernier n'est pas spécifié sur la ligne
de commande ou par PGDATABASE
.
Cet outil, comme la plupart des autres outils PostgreSQL, utilise aussi les variables d'environnement supportées par la bibliothèque libpq (voir Section 33.14).
En cas de difficulté, on peut se référer à CREATE DATABASE et psql qui présentent les problèmes éventuels et les messages d'erreurs. Le serveur de bases de données doit être en cours d'exécution sur l'hôte cible. De plus, tous les paramètres de connexion et variables d'environnement par défaut utilisés par la bibliothèque d'interface libpq s'appliquent.
Créer la base de données demo
sur le
serveur de bases de données par défaut :
$
createdb demo
Créer la base de données demo
sur le
serveur hébergé sur l'hôte eden
, port 5000,
en utilisant la base de données modèle template0
, voici
la commande en ligne de commande ainsi que la commande SQL
sous-jacente :
$
createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;