Soy nuevo a PostgreSQL y tengo una pregunta simple:PostgreSQL - psql i: la forma de ejecutar secuencias de comandos en un camino dado
Estoy intentando crear un simple script que crea una base de datos de modo que pueda más tarde llamaría así:
psql -f createDB.sql
Quiero la secuencia de comandos para llamar a otras secuencias de comandos (separados para la creación de tablas, añadir restricciones, funciones, etc.), así:
\i script1.sql
\i script2.sql
funciona bien siempre y cuando creado B.sql está en el mismo dir.
Pero si muevo SCRIPT2 a un directorio bajo el que tiene createDB, y modificar el createDB por lo que se parece a esto:
\i script1.sql
\i somedir\script2.sql
consigo un error:
psql:createDB.sql:2: somedir: Permission denied
estoy usando Postgres Plus 8.3 para Windows, usuario postgres predeterminado.
EDIT:
Me tonto, UNIX barras resuelto el problema.
Revertir las barras era suficiente, no se necesitaban escapes. –
Cabe destacar que las barras diagonales son perfectamente válidas en Windows y son compatibles de forma nativa. Por lo tanto, puede usar barras diagonales casi en todas partes en Windows (con la excepción de aplicaciones mal escritas). Dado que la barra diagonal inversa se utiliza a menudo como un carácter de escape, su comportamiento será inconsistente entre aplicaciones e incluso usos dentro de una sola aplicación. – Kat