2013-12-26 2 views
1

У меня есть схема с именем 2sample.sc. Когда я хочу pg_dump некоторые из его таблицы, появляется следующее сообщение об ошибке:Точка (.) В имени схемы делает pg_dump непригодным для использования

pg_dump: No matching tables were found 

Моя команда pg_dump:

pg_dump -U postgres -t 2sample.sc."error_log" --inserts games > dump.sql 

Мой pg_dump отлично на других схемах, как 2sample работает.

Что я сделал:

  • Я пытался бежать точку без успеха, хотя

ответ

2

Используйте "schema.name.with.dots.in.it"."table.name.with.dots.in.it" указать schema.table (.):

 -- test schema with a dot in its name 
DROP SCHEMA "tmp.tmp" CASCADE; 
CREATE SCHEMA "tmp.tmp" ; 
SET search_path="tmp.tmp"; 

CREATE TABLE nononono 
     (dont SERIAL NOT NULL 
     ); 

insert into nononono 
SELECT generate_series(1,10) 
     ; 

$pg_dump -t \"tmp.tmp\".\"nononono\" --schema-only -U postgres the_database 

Выход (пропущено):

SET search_path = "tmp.tmp", pg_catalog; 
SET default_tablespace = ''; 
SET default_with_oids = false; 

-- 
-- Name: nononono; Type: TABLE; Schema: tmp.tmp; Owner: postgres; Tablespace: 
-- 

CREATE TABLE nononono (
    dont integer NOT NULL 
); 

КСТАТИ: почему вы хотите добавить точку к (или таблицы) имя схемы? Он просит неприятностей. То же самое для MixedCaseNames. Подчеркивает работу просто отлично.

+0

все в руководстве '--schema 'the_name" '(или' -n "the_name" ') должно работать. – wildplasser

+0

Я работаю с существующим проектом. Если бы я был им, я бы определенно использовал _ или что-то еще. – ALH

+1

IMHO вы (они должны реорганизовать его как можно скорее. Это всего лишь день работы или около того. Усилия будут окупиться через год или около того. Это катастрофа, которая должна произойти. – wildplasser

 Смежные вопросы

  • Нет связанных вопросов^_^