Bonjour !

J'ai un batch qui me permet de créer une base de donnée psql et de créer par la suite des tables.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
psql -f "%cd%\db.sql" postgres
echo la base de données a été créées !
pause
psql -f "%cd%\db_table.sql" mabase postgres
echo   les tables  ont étés créées !
Le fichier db.sql :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CREATE DATABASE mabase;
Et le fichier db_table.sql:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
create table myTable(
   idTable               INT4                 not null,
   nom                  VARCHAR(254)         null,
   date           DATE                 null,
   constraint PK_idTable primary key (idTable)
);

Ce batch s'exécute très bien sans problème et créé la base de donnée ainsi que la table.


Mon problème est que la table est créée dans le schéma par défaut public. Ce que j'aimerais faire c'est de créer un schema d'abord, ça j'arrive à le faire avec une ligne de plus dans mon batch :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
psql -f "%cd%\schema.sql" mabase postgres
Le fichier schema.sql:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CREATE SCHEMA mabase_schema;
Maintenant le problème est de créer la table dans le nouveau schéma et non pas dans le schema public.

J'ai essayé avec la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
psql -f "%cd%\db_table.sql" mabase_schema.mabase postgres
Mais sans succès !

Comment pourrai-je définir le schéma dans mon fichier batch ?