Création d'une base de données PostgreSQL à partir d'un gabarit
Pour créer une base de données PostgreSQL, on peut simplement exécuter la commande SQL suivante :
CREATE DATABASE dbname;
Si le gabarit (template) n'est pas spécifié, PostgreSQL créera la nouvelle base de données en utilisant un clone de la base de données "template1" (base de données système qui n'est pas destinée à faire du développement). Tous les objets se trouvant à l'intérieur de template1 seront copiés dans la nouvelle BD. Autrement dit, il s'agit du modèle par défaut dans lequel on pourra y ajouter les langages, tables, fonctions et types qui sont généralement utilisés dans la modélisation d'un projet (c'est l'équivalent de la BD "model" sous SQL Server).
CREATE DATABASE dbname;
équivaut à :
CREATE DATABASE dbname TEMPLATE template1;
Si on préfère plutôt en créer une à partir d'un modèle vierge (sans objets), on préférera utiliser template0 (autre gabarit système existant lors de l'installation) :
CREATE DATABASE dbname TEMPLATE template0;
On pourra aussi dupliquer une base de données existante, mais attention, aucun utilisateur ne doit être connecté à la source! La copie d'une base de données de travail permettra de dupliquer la structure ainsi que les données.
CREATE DATABASE db_copie TEMPLATE db_source;
Note : L'utilisation des guillemets sera nécessaire si le nom de la base de données contient des caractères spéciaux ou des majuscules.
Tres pratique le
create database db_copie template db_source;
ou
create database db_copie template db_source tablespace tbspace2;
pour copier la table sur un autre tablespace ...
;)