From: | Fernando Hevia <fhevia(at)gmail(dot)com> |
---|---|
To: | p Valdés <p(dot)valdes334(at)gmail(dot)com> |
Cc: | Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: carga masiva de archivos en postgresql |
Date: | 2012-12-28 15:22:45 |
Message-ID: | CAGYT1XR=xp9CHxanNHN-oHwRZ9c7bz1xokN3qvOXSygChm2VrA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2012/12/28 p Valdés <p(dot)valdes334(at)gmail(dot)com>
> 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.
From | Date | Subject | |
---|---|---|---|
Next Message | Rafael Valenzuela | 2012-12-30 18:58:40 | shared Postgresql |
Previous Message | p Valdés | 2012-12-28 12:14:37 | carga masiva de archivos en postgresql |