Exécuter dynamiquement un fichier SQL à partir d'un fichier BAT
Bonjour,
j'au une base de donnée avec plusieurs schémas.
j'ai aussi un batch qui me permet d’exécuter des .sql
Code:
1 2 3 4 5 6 7 8
| pause
psql -f "%cd%\setSchema.sql" databasename user
pause
psql -f "%cd%\update.sql" databasename user
echo database updated !
pause |
setSchema.sql:
Code:
1 2 3 4
| ALTER DATABASE databasename SET search_path = firstschema;
ALTER DATABASE databasename SET search_path = secondschema;
ALTER DATABASE databasename SET search_path = tirdschema;
ALTER DATABASE databasename SET search_path = fourthschema; |
update.sql
Code:
create table x(.....);
ce que je veux faire c'est exécuter le fichier setSchema.sql ligne par ligne et entre chaque ligne appeler le fichier update sql quelque chose comme
Code:
1 2 3 4 5 6
| For /F "usebackq eol=;" %%A In ("%cd%\setSchema.sql") Do (
psql -c %%A -w --no-password databasename user
pause
psql -f "%cd%\db_update.sql" databasename user
pause
) |
quand j'execute le .bat j'ai une erreur
Code:
1 2
| ERREUR: erreur de syntaxe à la fin de l'entrée
LIGNE 1 : ALTER ^ |
une idée ?