Ho un sacco di script SQL che creano tabelle nel database. Ogni tabella si trova in un file separato in modo che la loro modifica sia molto più semplice.Come eseguire lo script sql di Postgres da un altro script?
Volevo preparare un singolo script SQL che crei lo schema completo, crei tabelle, inserisca dati di test e generi sequenze per le tabelle.
Sono stato in grado di fare questa cosa per il database di Oracle ma ho problemi con postgres. Il fatto è che non so come eseguire la tabella creando script da un altro script.
in Oracle lo faccio utilizzando la seguente sintassi:
@@'path of the script related to the path of the currently running sql file'
e tutto funziona come un fascino.
In postgres che stavo cercando di cercare qualcosa di simile e ho trovato questo:
\ir 'relative path to the file'
Purtroppo quando eseguo il mio script principale ricevo il seguente messaggio:
No such file or directory.
La chiamata esempio è qui:
\ir './tables/map_user_groups.sql'
Uso Postgres 9.3. Ho provato a eseguire lo script utilizzando psql:
psql -U postgres -h localhost -d postgres < "path to my main sql file"
Il file viene eseguito senza la chiamata di altri script.
Qualcuno sa come risolvere il problema?
Se qualcosa nella questione non è chiara - fammelo sapere :)
In quale sistema operativo si sta tentando di realizzare questo? – rchang
'psql -U postgres -h localhost -d postgres <" percorso al mio file sql principale "': dal punto di vista di psql il file main_sql è solo stdin. stdin non ha "nomefile"; usa '-f nomefile' per inviare un file ** con ** un nome. – wildplasser
Grazie @wildplasser, era così :) rchang lo faccio su Windows 7 Professional –