PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Créez une base de données Postgres à l'aide d'un fichier batch avec [template], [encoding], [owner] et un fichier .sql

Le programme client createdb ne prend pas en charge toutes ces options.
Créez un fichier db_create.sql :

CREATE DATABASE MydatAbseName
   WITH OWNER myadmin 
   TEMPLATE template0
   ENCODING 'SQL_ASCII'
   TABLESPACE  pg_default
   LC_COLLATE  'C'
   LC_CTYPE  'C'
   CONNECTION LIMIT  -1;

Appelez-le :

psql -U postgres postgres -f C:/path/to/db_create.sql

L'astuce ici est de se connecter à la base de maintenance par défaut "postgres" et créez la nouvelle base de données à partir de là. Je le fais avec le superutilisateur par défaut nommé "postgres" dans mon exemple.
psql -f exécute les commandes SQL dans le fichier donné.

Vous pouvez également exécuter une seule commande avec psql -c (aucun fichier impliqué) :

psql -U postgres postgres -c "CREATE DATABASE MydatAbseName WITH OWNER Myadmin
EMPLATE template ENCODING 'SQL_ASCII' TABLESPACE  pg_default LC_COLLATE  'C'
LC_CTYPE  C' CONNECTION LIMIT  -1"

Plus d'informations sur la création d'une base de données dans le manuel fin ici et ici .
En savoir plus sur psql .

Sous Windows, cela ressemble à ceci :

"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres

Le dernier "postgres" est le nom de la base de données de maintenance par défaut. Si vous souhaitez l'utiliser dans un fichier de commandes, vous devez répondre à une invite de mot de passe ou vous connecter avec un utilisateur autorisé à accéder sans fournir de mot de passe. Principes de base dans les chapitres Le fichier de mots de passe et Le fichier pg_hba.conf du manuel. Plus ici :