[database] PostgreSQL 데이터베이스로 SQL 덤프 가져 오기

우리는 호스트를 전환하고 있으며 이전 호스트는 사이트의 PostgreSQL 데이터베이스의 SQL 덤프를 제공했습니다.

이제 이것을 테스트하기 위해 로컬 WAMP 서버에서 설정하려고합니다.

유일한 문제는 내가 설정 한 PostgreSQL 9 에서이 데이터베이스를 가져 오는 방법에 대한 아이디어가 없다는 것입니다.

pgAdmin III을 시도했지만 ‘가져 오기’기능을 찾을 수없는 것 같습니다. 그래서 방금 SQL 편집기를 열고 거기에 덤프 내용을 붙여 넣고 실행하면 테이블이 생성되지만 데이터를 넣으려고 할 때 오류가 계속 발생합니다.

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

또한 명령 프롬프트 로이 작업을 시도했지만 필요한 명령을 찾을 수 없습니다.

만약 내가한다면

psql mydatabase < C:/database/db-backup.sql;

나는 오류를 얻는다

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

데이터베이스를 가져 오는 가장 좋은 방법은 무엇입니까?



답변

psql databasename < data_base_dump

그것이 당신이 찾고있는 명령입니다.

주의 : databasename가져 오기 전에 작성해야합니다. PostgreSQL 문서 23 장. 백업 및 복원을 살펴보십시오 .


답변

찾고있는 명령은 다음과 같습니다.

psql -h hostname -d databasename -U username -f file.sql


답변

psql에서 실행하고 싶다고 생각합니다.

\i C:/database/db-backup.sql


답변

그것은 나를 위해 일했다 :

sudo -u postgres psql db_name < 'file_path'


답변

이것이 OP의 상황에서 작동하는지 확실하지 않지만 대화 형 콘솔에서 다음 명령을 실행하는 것이 가장 유연한 솔루션이라는 것을 알았습니다.

\i 'path/to/file.sql'

이미 올바른 데이터베이스에 연결되어 있는지 확인하십시오. 이 명령은 지정된 파일에서 모든 SQL 명령을 실행합니다.


답변

명령 줄에서 모든 인수가 필요합니다. -W는 비밀번호입니다.

psql -h localhost -U user -W -d database_name -f path/to/file.sql


답변

funsies의 경우 덤프가 압축되면 다음과 같은 작업을 수행 할 수 있습니다

gunzip -c filename.gz | psql dbname

Jacob이 언급했듯이 PostgreSQL 문서 는이 모든 것을 잘 설명합니다.