Re: Errors regarding transporting database using pg_dump - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Errors regarding transporting database using pg_dump
Date
Msg-id 200910051918.09450.aklaver@comcast.net
Whole thread Raw
In response to Re: Errors regarding transporting database using pg_dump  (Chun-fan Ivan Liao <ivan@ivangelion.tw>)
List pgsql-general
On Monday 05 October 2009 10:36:04 am Chun-fan Ivan Liao wrote:
> Thank you, Oosterhout and Lane.
>
> The code is not written by me. The previous DB admin is not reachable.
> I was just the present-stage DB (newbie) admin, and I never touched
> PostgreSQL before.... :(
>
> On Mon, Oct 5, 2009 at 10:34 PM, Martijn van Oosterhout
>
> <kleptog@svana.org> wrote:
> > On Mon, Oct 05, 2009 at 06:07:44PM +0800, Chun-fan Ivan Liao wrote:
> > > I used pg_dump to dump the old database out and psql to store the
> > > database into the new server, but the following two errors occurred:
> > >
> > > ERROR:  incompatible library "/lib/libc.so.6": missing magic block
> > > HINT:  Extension libraries are required to use the PG_MODULE_MAGIC
> > > macro. STATEMENT:  CREATE FUNCTION "system"(cstring) RETURNS integer
> > >             AS '/lib/libc.so.7', 'system'
> > >             LANGUAGE c STRICT;
> >
> > Ok, here someone was cheating by invoking a system library function
> > directly. That's no longer supported. If you really want this you need
> > to make a small library with PG_MODULE_MAGIC; and a pg_system() function
> > that redirects to the real system().
> >
> > That said, why are you doint this anyway. A better solution may be to
> > install a trusted language (like plperlu or plpython) and do the system
> > call from there.
>
> Could you tell me the exact command I should use? Replace the error
> command in the dumped file?
>
> > > ERROR:  value too long for type character varying(12)
> > > CONTEXT:  COPY stulist, line 46803, column STU_CNAME:
> > > "??????(9debacdd)???" STATEMENT:  COPY stulist ("COURSE_SN", "S_YEAR",
> > > "S_TERM", "COU_CODE", "CLASS", "REG_NO", "DPT_CODE", "DPT_SCNAME",
> > > "YEAR", "CREDIT", "COU_CNAME", "TEA_CODE", "TEA_CNAME", "STU_CNAME",
> > > "SCORE", "SCORE_A", "SERNO", "PANOPA", "UNIT", "TEMP") FROM stdin;
> >
> > Here the column is defined as 12 characters and you're trying to
> > inserts a 19 character string, which is bad. How you got that out of
> > pg_dump though I don't know.
>
> I used pg_dump to dump the database again, and the statement and error
> was the same also. No idea what to do.

First are you using the 8.1 or 8.3 version of pg_dump? It is generally
recommended to use the new version to dump the old version database. One
potential solution is to alter the varchar length in the old database before
you dump so the field will copy over.

--
Adrian Klaver
aklaver@comcast.net

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: ERROR: column "id" inherits conflicting default values
Next
From: Greg Stark
Date:
Subject: Re: Errors regarding transporting database using pg_dump