Обсуждение: Importing SQL file into PostgreSQL database

Поиск
Список
Период
Сортировка

Importing SQL file into PostgreSQL database

От
Elliot Voris
Дата:

I work for a small college, where the library uses Evergreen to manage it’s collection. The database is PostgreSQL driven. The server that Evergreen was running on crashed. The old server was running PostgreSQL 8.3. I’ve installed an updated version of Evergreen, including PostgreSQL 8.4.8. I have a backup of the database in a SQL file. When I try to import the file into the new database I get the following output:

 

postgres@server:~$ psql database < olddb.sql

SET

SET

SET

SET

SET

SET

setval

--------

  23405

(1 row)

 

ERROR:  function xml_is_well_formed(text) does not exist

LINE 1: SELECT xml_is_well_formed( $1 )

 

HINT: No function matches the given name and argument types. You might need to

add explicit type casts

QUERY:  SELECT xml_is_well_formed( $1 )

CONTEXT:  PL/pgSQL function “check_marcxml_well_formed” line 3 at IF

COPY record_entry, line 1: “-1  1       1       1       -1      2009-06-29 18:54

:59.184263+00   2009-06-29 15:54:59.184263+00   f       f               AUTOGEN-

1                           FOO”

 

I saw that XML Functions need PostgreSQL to be configured with libxml at install. Is there a way around that? Can I install XML Functions into my server after the fact?

 

Thanks for any and all help!

 

Elliot Voris

Re: Importing SQL file into PostgreSQL database

От
"Kevin Grittner"
Дата:
Elliot Voris <evoris@slcconline.edu> wrote:
> I work for a small college, where the library uses Evergreen to
> manage it's collection. The database is PostgreSQL driven. The
> server that Evergreen was running on crashed. The old server was
> running PostgreSQL 8.3. I've installed an updated version of
> Evergreen, including PostgreSQL 8.4.8.

Did that come as part of the Evergreen install package?  If not, did
Evergreen provide any advice on what to download or install?

> I have a backup of the database in a SQL file.

Made with the old version of PostgreSQL against the old version of
the Evergreen database?

> When I try to import the file into the new
> database I get the following output:
>
> postgres@server:~$ psql database < olddb.sql
> SET
> SET
> SET
> SET
> SET
> SET
> setval
> --------
>   23405
> (1 row)
>
> ERROR:  function xml_is_well_formed(text) does not exist
> LINE 1: SELECT xml_is_well_formed( $1 )

I would double-check what the supported method of upgrading
Evergreen is.  FWIW, it is generally much better to dump a
PostgreSQL database with the version of pg_dump matching the
database into which it will be *restored* rather than matching the
database version being dumped.  That can be worked around, but your
first concern should probably be whether the new version of the
Evergreen software will work with a copy of the database from the
old version.  You might be best served by installed the old version,
from which you have a dump, and then following the standard upgrade
procedure for Evergreen -- rather than trying to take any short
cuts.

Whatever you do, protect that dump until well after you have things
running smoothly.

-Kevin