Una altra per recordar.

Per un lapsus, en una base de dades postgresql en producció, s'han esborrat uns quants registres d'una taula taula_perduda.

Per sort, tenia altra de còpia de seguretat en una altra base de dades que era una rèplica.

Aleshores, com podria copiar les dades d'una taula a l'altra sense tocar les que té la taula en producció?

Una possible solució:

Si executem això:

$ sudo su - postgres
$ psql base_copia -c "copy (select c1, c2, c3 from taula_perduda ) to stdout"

Mostrem les dades en pantalla.

Si ho juntem amb una tuberia, podem posar les dades en la taula que toca ràpidament:

$ psql base_copia -c "copy (select c1, c2, c3 from taula_perduda ) to stdout" | \
psql base_bona -c "copy taula_perduda (c1, c2, c3) frm stdin"

Perfecte.