6

I am trying to dump a schema from Postgres 9.4, running on Cents 6.5, but I get an error:

pg_dump: No matching schemas were found

Here is the command I am running:

pg_dump -U postgres -n "OLD-TODELETE-bushes" --verbose site > output_nf 

I am a little confused by this as when I run select schema_name from information_schema.schemata, I can see the schema name.

If I run pg_dump for all schemas the OLD-TODELETE-bushes is dumped to file, as expected.

There are no error's in the Postgres logs.

Anyone have any ideas?

2
  • 1
    Did you try it without the quotes around the schema name? I suppose that you did the pg_dump for all schema's with the same user and for the same database (site)? Commented Aug 27, 2015 at 11:59
  • Yeah tried it with and without quotes and with same user, same db... Works fine for every other schema in the database. Commented Aug 27, 2015 at 13:31

1 Answer 1

7

Fixed this by changing the quotes from "schema_name" to '"schema_name"'

See: pg_dump doesn't dump datascheme with uppercase letters in

...where Tom Lane replied:

The problem is that there are two levels of quoting needed: one for the shell and one for SQL. As you wrote it, the double quotes are stripped off by the shell and so pg_dump gets Schema, which is case-folded per normal SQL rules. So you need to write:

pg_dump -n '"Schema"' -U postgres database 

Now, the shell eats the single quotes and passes "Schema" to pg_dump.

1
  • 1
    Important to note (like Tom Lane did, too): this is not a bug, just your missing quotes. My standing advice is no use legal lower-case identifiers in Postgres and never have to deal with such problems. Commented Sep 4, 2015 at 18:56

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.