linea - postgreSQL-psql / i: cómo ejecutar el script en una ruta determinada
linea de comandos postgresql (4)
¿Has probado usar barras de estilo de Unix (/ en lugar de /)?
/ a menudo es un carácter de escape o de comando, y puede ser la fuente de confusión. Nunca he tenido problemas con esto, pero tampoco tengo Windows, así que no puedo probarlo.
Además, los permisos pueden basarse en el usuario que ejecuta psql, o tal vez el usuario que está ejecutando el servicio postmaster, verifique que ambos hayan leído ese archivo en ese directorio.
Soy nuevo en postgreSQL y tengo una pregunta simple:
Intento crear un script simple que cree un DB para luego poder llamarlo así:
psql -f createDB.sql
Quiero que la secuencia de comandos llame a otras secuencias de comandos (por separado para crear tablas, agregar restricciones, funciones, etc.), así:
/i script1.sql
/i script2.sql
Funciona bien siempre que createDB.sql esté en el mismo directorio .
Pero si muevo script2 a un directorio debajo del que tiene createDB, y modifico el createDB para que se vea así:
/i script1.sql
/i somedir/script2.sql
Me sale un error:
psql: createDB.sql: 2: somedir: Permiso denegado
Estoy usando Postgres Plus 8.3 para Windows, usuario predeterminado de Postgres.
EDITAR:
Tonto, las barras unix resolvieron el problema.
Intenté esto y su funcionamiento en la máquina de Windows para ejecutar un archivo sql en un esquema específico.
psql -h localhost -p 5432 -U username -d databasename -v schema = schemaname <e: / Table.sql
Postgres comenzó en Linux / Unix. Sospecho que revertir la barra con arreglarlo.
/i somedir/script2.sql
Si necesitas calificar completamente algo
/i c:/somedir/script2.sql
Si eso no lo soluciona, mi próxima suposición sería que necesitas escapar de la barra invertida.
/i somedir//script2.sql
Prueba esto, yo trabajo para hacerlo
/i ''somedir//script2.sql''