[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 문서 는이 모든 것을 잘 설명합니다.