Re: carga masiva de archivos en postgresql

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.

In response to

Browse pgsql-es-ayuda by date

  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