Re: Ordenar por FK el listado de TOC de un .backup

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Calabaza Calabaza <calalinux(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ordenar por FK el listado de TOC de un .backup
Date: 2007-07-23 17:01:39
Message-ID: 20070723170139.GJ2540@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Calabaza Calabaza escribió:
> Yo estoy haciendo lo siguiente, a ver en que estoy mal:
>
> 1° Creo el archivo .backup de toda la BD.
>
> 2° Creo una archivo con la lista de contenidos del .backup con:
> pg_restore -l archivo.backup > toc.txt
>
> 3° Edito el archivo toc.txt y dejo solamente las entradas que digan TABLE
> DATA
>
> 4° Para restaurarlo con el pg_restore no utilizo el -a o -s solamente
> le digo que lea desde un el archivo con -L.
>
> Estoy bien?

El problema es que ya tienes las tablas creadas y con las FKs
declaradas. Lo que puedes hacer es agregar el switch a pg_dump (o es a
pg_restore) que borra las cosas antes de crearlas. De esa manera le
dices que borre las tablas y luego restaura los datos.

Lo que hace pg_dump es lo siguiente:

1. crea las tablas
2. inserta los datos
3. agrega las FKs

Con esta estrategia no hay problema con el orden en que insertes los
datos. En cambio lo que tu estas haciendo es (los dos primeros pasos
son implicitos: es el estado inicial de tu BD)

1. crea las tablas
2. agrega la FKs
3. inserta los datos

con lo cual obviamente tienes problemas para restaurar los datos.

Ademas, restaurar los datos cuando las FKs existen es mucho mas lento
que crear las FKs cuando los datos estan ingresados (en el primer caso,
cada registro chequea la existencia del registro al que hace referencia;
en cambio en el segundo caso, se hace una sola query que chequea todo el
conjunto de datos).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-07-23 17:10:13 Re: explain analyze
Previous Message Mario Gonzalez 2007-07-23 16:56:46 Re: int a date