Thread: 7.2 Upgrade problems: Cannot restore from pg_dumpall
Hi, I following INSTALL instruction, however I got error on Step 4. I issue the follow command: $ su - postgres $ /usr/local/pgsql/bin/psql -d template1 -f /tmp/pg_dump.bak Error message: CREATE DATABASE psql:/tmp/pg_dump.bak:473: \connect: FATAL 1: Database "chinese" does not exist in the system catalog. copying template1 to template0... ok Here is the content of pg_dump.bak 471 \connect template1 postgres 472 CREATE DATABASE "Chinese" WITH TEMPLATE = template0 ENCODING = 'EUC_TW'; 473 \connect Chinese postgres Any Hints? Regards, Chris Lee
> CREATE DATABASE > psql:/tmp/pg_dump.bak:473: \connect: FATAL 1: Database "chinese" does not > exist in the system catalog. > copying template1 to template0... ok > > Here is the content of pg_dump.bak > > 471 \connect template1 postgres > 472 CREATE DATABASE "Chinese" WITH TEMPLATE = template0 ENCODING = > 'EUC_TW'; 473 \connect Chinese postgres It looks like you're running into a problem with case sensitivity. I guess it might also be a problem with pg_dump, since you used it directly. I think the solution is to use quotation marks around the word "Chinese" in the connect statement. \connect Chinese postgres => \connect "Chinese" postgres Hope it helps. I wonder what's up with pg_dump though... It seems like a bad idea to use any capital letters for any identifiers in postgresql because postgresql handles them so awkwardly. Regards, Jeff
Chris Lee <Chrislee@centurycity.com.hk> writes: > Here is the content of pg_dump.bak > 471 \connect template1 postgres > 472 CREATE DATABASE "Chinese" WITH TEMPLATE = template0 ENCODING = 'EUC_TW'; > 473 \connect Chinese postgres > Any Hints? That last line needs to be \connect "Chinese" postgres This appears to be a bug in pg_dumpall --- it should quote the database name to avoid case-folding. If you can hand-edit the dump script to fix it, you should be okay. regards, tom lane