반응형
0️⃣ 전제 조건 정리
이미 한 것 / 해야 할 것부터 분리하자.
✔ 이미 한 것
- 개발 서버(또는 개발 PC)에 PostgreSQL 설치 완료
- PostgreSQL 서비스 실행 중
- data.sql 파일 있음 (Ora2Pg가 만든 COPY 스크립트)
✔ 지금 할 것
- psql 명령으로 data.sql 실행
1️⃣ psql이 실행 가능한지 먼저 확인
Linux / Docker / 서버라면
psql --version
정상 출력 예:
psql (PostgreSQL) 14.11
❌ 안 나오면:
- postgresql-client 미설치
- PATH 안 잡힘
Windows라면
보통 설치 경로:
C:\Program Files\PostgreSQL\14\bin
여기로 이동해서 실행하거나
환경변수 PATH에 추가한다.
cd "C:\Program Files\PostgreSQL\14\bin"
psql --version
2️⃣ 데이터베이스와 사용자 확인
① postgres 유저로 접속 테스트
psql -h localhost -U postgres
비밀번호 입력 → 접속되면 성공
② DB 존재 확인
\l
목록에 mydb가 없으면 생성해야 한다.
CREATE DATABASE mydb;
3️⃣ data.sql 파일 위치 확인 (중요)
예시
/home/dev/migration/data.sql
또는 Windows:
C:\migration\data.sql
👉 psql 실행 위치와 파일 위치를 정확히 알아야 한다
4️⃣ 실제 실행 명령 (핵심)
Linux / 서버 기준
psql -h localhost -U postgres -d mydb -f /home/dev/migration/data.sql
Windows 기준
psql -h localhost -U postgres -d mydb -f C:\migration\data.sql
또는 bin 폴더에서:
"C:\Program Files\PostgreSQL\14\bin\psql.exe" ^
-h localhost ^
-U postgres ^
-d mydb ^
-f C:\migration\data.sql
5️⃣ 실행 중 나오는 메시지 해석법
✅ 정상일 때
SET SET COPY 13
👉 COPY 13 = 13건 정상 이행
❌ 오류 날 때 예시
ERROR: invalid input syntax for type timestamp: "20230708174720"
CONTEXT: COPY ti_lcls_menu, line 1, column ins_dtime
👉 이 경우:
- 컬럼 타입 불일치
- VARCHAR로 바꾸거나
- 사전 변환 필요
6️⃣ 실행 후 반드시 확인해야 할 것
① 데이터 건수
SELECT COUNT(*) FROM ti_lcls_menu;
② 샘플 데이터
SELECT * FROM ti_lcls_menu LIMIT 5;
③ 한글 깨짐 여부
SELECT l_menu_nm FROM ti_lcls_menu;
7️⃣ 절대 하면 안 되는 실행 방식 ❌
이건 진짜 중요하다.
- ❌ pgAdmin Query Tool
- ❌ DBeaver SQL Editor
- ❌ JDBC 실행
이유:
- COPY ... FROM STDIN은 psql 전용
8️⃣ 자주 겪는 실수 TOP 3
❌ data.sql 경로 틀림
→ No such file or directory
❌ DB 이름 틀림
→ database "mydb" does not exist
❌ 권한 문제
→ permission denied for relation
9️⃣ 한 문장 요약
PostgreSQL 데이터 이행용 COPY 스크립트는
반드시 psql CLI에서
-f data.sql 방식으로 실행해야 한다.
반응형
'실험실 > db이행' 카테고리의 다른 글
| 서버구축실패 요약 (0) | 2026.01.20 |
|---|---|
| 서버환경 이슈 (0) | 2026.01.20 |
| 이슈 업무범위 ddl까지 vs data 이행까지 (0) | 2026.01.15 |
| 이슈 (1) | 2026.01.15 |
| 실행모델, Job구조, 상태모델, 보안모델, 결과물 스펙 등 결정사항 (0) | 2026.01.14 |
댓글