Restore data to an existing populated table

Restore data to an existing populated table

am 08.04.2010 10:40:58 von Renato Oliveira

--_000_7965A9DCF12CC14984420BCC37B1608F25ABF311FBElzargrantc ou_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Dear all,

I would like to know if it is possible to restore data to a pre-populated d=
b/table.

I was reading the man pages for pg_dump and pg_restore.

"The limitations of pg_restore are detailed below.

* When restoring data to a pre-existing table and the option...

Does that mean the table can exist and can be populated with data, pg_resto=
re will append the data to the db/table without deleting/dropping the exist=
ing data?

What I need to achieve is:
1 - Download the schema from an old DB
2 - Restore the schema to a new DB
3 - Point my application to the new DB, it will populate with new data
4 - at later date do a pg_dump to dump the data from old DB - (Should I use=
'COPY' statement instead of pg_dump?
5 - Restore the data only to the new DB - as in copying the data and append=
ing it to existing db/tables.

What is the natural behaviour of pg_restore, does it wipe the existing data=
on the existing DB, or it displays 'errors' and carries on copying the dat=
a?

I read there are ways of copying the data using 'COPY' statements, does tha=
t mean I can copy the data back without wiping the existing data?

Ps Thank you very much for all help you have given to me, and all the time =
you spent reading and also replying to my emails.
I am learning loads, still loads to learn but I am sure some day I will be =
helping as well.

Thank you very much

Best regards

Renato



Renato Oliveira
Systems Administrator
e-mail: renato.oliveira@grant.co.uk

Tel: +44 (0)1763 260811
Fax: +44 (0)1763 262410
www.grant.co.uk

Grant Instruments (Cambridge) Ltd

Company registered in England, registration number 658133

Registered office address:
29 Station Road,
Shepreth,
CAMBS SG8 6GB
UK





P Please consider the environment before printing this email
CONFIDENTIALITY: The information in this e-mail and any attachments is conf=
idential. It is intended only for the named recipients(s). If you are not t=
he named recipient please notify the sender immediately and do not disclose=
the contents to another person or take copies.

VIRUSES: The contents of this e-mail or attachment(s) may contain viruses w=
hich could damage your own computer system. Whilst Grant Instruments (Cambr=
idge) Ltd has taken every reasonable precaution to minimise this risk, we c=
annot accept liability for any damage which you sustain as a result of soft=
ware viruses. You should therefore carry out your own virus checks before o=
pening the attachment(s).

OpenXML: For information about the OpenXML file format in use within Grant =
Instruments please visit our website ..html>

--_000_7965A9DCF12CC14984420BCC37B1608F25ABF311FBElzargrantc ou_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

osoft-com:office:access" xmlns:b=3D"urn:schemas-microsoft-com:office:publis=
her" xmlns:c=3D"urn:schemas-microsoft-com:office:component:spread sheet" xml=
ns:D=3D"DAV:" xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/di r=
ectory/" xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" xmlns:dsp=3D"http:=
//schemas.microsoft.com/sharepoint/dsp" xmlns:dssi=3D"http://schemas.micros=
oft.com/office/2006/digsig" xmlns:dsss=3D"http://schemas.microsoft.com/offi=
ce/2006/digsig-setup" xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882=
" xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" xmlns:ex12m=3D"http://sche=
mas.microsoft.com/exchange/services/2006/messages" xmlns:ex12t=3D"http://sc=
hemas.microsoft.com/exchange/services/2006/types" xmlns:html=3D"http://www.=
w3.org/TR/REC-html40" xmlns:m=3D"http://schemas.microsoft.com/office/2004/1=
2/omml" xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/200 6/digit=
al-signature" xmlns:mrels=3D"http://schemas.openxmlformats.org/package/200 6=
/relationships" xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/me=
etings/" xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compa tibili=
ty/2006" xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:oa=3D"ur=
n:schemas-microsoft-com:office:activation" xmlns:odc=3D"urn:schemas-microso=
ft-com:office:odc" xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soa=
p/ois/" xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" xmlns:ppda=
=3D"http://www.passport.com/NameSpace.xsd" xmlns:pptsl=3D"http://schemas.mi=
crosoft.com/sharepoint/soap/SlideLibrary/" xmlns:q=3D"http://schemas.xmlsoa=
p.org/soap/envelope/" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" xml=
ns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:rtc=3D"http://microsoft.co=
m/officenet/conferencing" xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14=
882" xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" xmlns:sps=3D"htt=
p://schemas.microsoft.com/sharepoint/soap/" xmlns:spsl=3D"http://microsoft.=
com/webservices/SharePointPortalServer/PublishedLinksService " xmlns:spwp=3D=
"http://microsoft.com/sharepoint/webpartpages" xmlns:ss=3D"urn:schemas-micr=
osoft-com:office:spreadsheet" xmlns:st=3D"" xmlns:sub=3D"http://schemas=
..microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:udc=3D"http://schemas.=
microsoft.com/data/udc" xmlns:udcp2p=3D"http://schemas.microsoft.com/data/u=
dc/parttopart" xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" xm=
lns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:v=3D"urn:=
schemas-microsoft-com:vml" xmlns:w=3D"urn:schemas-microsoft-com:office:word=
" xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/wor kflow/" xmlns=
:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:x2=3D"http://schemas.mi=
crosoft.com/office/excel/2003/xml" xmlns:xsd=3D"http://www.w3.org/2001/XMLS=
chema" xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" xmlns:Z=3D"u=
rn:schemas-microsoft-com:"> scii" http-equiv=3D"Content-Type">
>












Dear all,



 



I would like to know if it is possible to restore data=
to a
pre-populated db/table.



 



I was reading the man pages for mily:
"Courier New"'>pg_dump
and >pg_restore.



if";
color:black'>“
mily:
"Courier New";color:black'>The limitations of pg_=
restore

are detailed below.



> l'>· New Roman"'>        
t;
font-family:"Courier New";color:black'>When restoring data to a pre-existin=
g
table and the option...
an","serif"'>



Does that mean the table can exist and can be populated with data,
pg_restore will append the data to the db/table without deleting/dropping t=
he
existing data?



 



What I need to achieve is:



1 – Download the schema from an old DB >



2 – Restore the schema to a new DB >

3 – Point my application to the new DB, it will
populate with new data



4 – at later date do a pg_dump to dump the data =
from
old DB – (Should I use ‘COPY’ statement instead of pg_dum=
p?



5 – Restore the data only to the new DB – =
as in
copying the data and appending it to existing db/tables.



 



What is the natural behaviour of pg_restore, does it w=
ipe
the existing data on the existing DB, or it displays ‘errors’ a=
nd
carries on copying the data?



 



I read there are ways of copying the data using ‘=
;COPY’
statements, does that mean I can copy the data back without wiping the exis=
ting
data?



 



Ps Thank you very much for all help you have given to =
me,
and all the time you spent reading and also replying to my emails. p>



I am learning loads, still loads to learn but I am sur=
e some
day I will be helping as well.



 



Thank you very much



 



Best regards



 



Renato



 



 






 

Renato=
Oliveira
Systems Administrator
e-mail: renato.oliveira@grant.co.uk FONT>
>

> 

Tel: +=
44 (0)1763 260811
Fax: +44 (0)1763 262410
..co.uk/">www.grant.co.uk

> 

Grant =
Instruments (Cambridge) Ltd
 
Company registered in England, re=
gistration number 658133
 
Registered office address:
29 Stat=
ion Road,
Shepreth,
CAMBS SG8 6GB
UK

> ONT> 

>

> 

>

 

>

 


; COLOR: green; FONT-FAMILY: Webdings"> 


; COLOR: green; FONT-FAMILY: Webdings">P =3D"EN-US" STYLE=3D"FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','=
sans-serif'">
OLOR: green; FONT-FAMILY: 'Arial','sans-serif'">Please consider the environ=
ment before printing this email


CONFIDENTIALITY: The =
information in this e-mail and any attachments is confidential. It is inten=
ded only for the named recipients(s). If you are not the named recipient pl=
ease notify the sender immediately and do not disclose the contents to anot=
her person or take copies.

 


VIRUSES: The contents=
of this e-mail or attachment(s) may contain viruses which could damage you=
r own computer system. Whilst Grant Instruments (Cambridge) Ltd has taken e=
very reasonable precaution to minimise this risk, we cannot accept liabilit=
y for any damage which you sustain as a result of software viruses. You sho=
uld therefore carry out your own virus checks before opening the attachment=
(s).

 


OpenXML: For informat=
ion about the OpenXML file format in use within Grant Instruments please vi=
sit our =


--_000_7965A9DCF12CC14984420BCC37B1608F25ABF311FBElzargrantc ou_--

Re: Restore data to an existing populated table

am 08.04.2010 18:55:36 von Kevin Grittner

Renato Oliveira wrote:

> I would like to know if it is possible to restore data to a
> pre-populated db/table.

Yes.

> Does that mean the table can exist and can be populated with
> data, pg_restore will append the data to the db/table without
> deleting/dropping the existing data?

Unless you explicitly use the "clean" option, yes.

> What I need to achieve is:
> 1 - Download the schema from an old DB

pg_dump -s

> 2 - Restore the schema to a new DB

psql or pg_restore (depending on dump format)

> 3 - Point my application to the new DB, it will populate with new
> data
> 4 - at later date do a pg_dump to dump the data from old DB -
> (Should I use 'COPY' statement instead of pg_dump?

pg_dump -a
(It will use COPY statements.)

> 5 - Restore the data only to the new DB - as in copying the data
> and appending it to existing db/tables.

psql or pg_restore (depending on dump format)
(You'll have problems if there are duplicates on primary key or
unique indexes or constraints.)

> What is the natural behaviour of pg_restore, does it wipe the
> existing data on the existing DB, or it displays 'errors' and
> carries on copying the data?

It never destroys data unless you explicitly tell it to do so. If
it hits and error attempting to add data to a table (due to schema
mismatch or duplicate rows, for example) the entire copy in to the
table fails.

I hope this helps.

-Kevin

--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin