2012/12/28 p Valdés <[email protected]>
> Pregunta rápida y tonta
>
> Tengo un directorio con archivos .sql todos ellos con datos todos
> ellos pertenecientes a la misma base.
>
> Para cargar cada uno escribo algo como:
>
> psql -d mibase -f /ruta/al/primer-archivo-de-datos.sql
> ... etc
>
> Pero si intento usar comodines de bash para cargar todos los archivos
> a la vez, o sea por ejemplo...
>
> psql -d mibase -f /ruta/al/*.sql
> psql -d mibase -f /ruta/al/[A-Z].sql
>
> El comando falla en ambos casos e interpreta que le estoy pasando la
> opción del usuario
>
> FATAL: la autentificaci?n Peer fall? para el usuario <</ruta/al/*.sql>>
>
> Sé que puedo tirar de un bucle bash, y también podría haber volcado
> todo a un sólo archivo, pero me resulta más sencillo tener a raya los
> errores dividiendo los archivos de la tabla por nombre. Enfín me
> pregunto si postgresql tiene alguna manera de lidiar con este tipo de
> situaciones
> Se agradecen ideas...
>
Se me ocurren dos:
1. Simplemente tiro todos los .sql contra la base:
cat /ruta/*.sql | psql -d mibase
2. La poquito más elegante con output de resultados por archivo:
find /ruta -name "*.sql" -exec psql -d -f {} -o {}.out \;
Saludos,
Fernando.