나의 개발 일지

MongoDB 간단한 데이터 마이그레이션 방법 (덤프 / 리스토어를 통한 마이그레이션)

designer DK 2025. 4. 11. 22:35
728x90

몽고디비에서 간단한 마이그레이션 작업을 진행했는데 그 방법을 기록해두려고 한다.

하는 방법은 간단한데 먼저 Dump라는 작업을 진행해서 기존 디비 데이터를 내 로컬에 백업으로 복제를 해두고

Restore라는 작업을 통해서 새로 만든 클러스터의 데이터베이스로 넣어주게 된다.

 

1. 먼저 터미널을 내 프로젝트 작업 경로로 맞춰준다.

(vs코드나 커서 등 개발환경에서 보통 그 경로에서 작업하므로 그 경우 따로 세팅안해줘도 됨)

 

2. 덤프 관련 명령어를 아래와 같이 입력한다.

mongodump --uri="mongodb://localhost:27017/design-market" --out=./backup

 

여기서 mongodb://localhost:27017/ 여기까지는 몽고디비 Compass의 기본 로컬 주소이며

design-market는 내가 로컬에서 만들어주었던 database name이다.

 

맨 뒤를 --out=./backup 으로 세팅하면

1번에서 세팅한 현재 프로젝트 경로 안에 백업 폴더가 생성되고

그 안에 기존 디비 기록들이 복제가 된다.

 

3. 리스토어 관련 명령어를 아래와 같이 입력한다.

mongorestore --uri="mongodb+srv://<몽고디비 유저네임>:<몽고디비 유저비번>@<클러스터 명>-cluster.lbv1cwr.mongodb.net/graffin" ./backup/design-market

 

여기서 mongodb+srv://<몽고디비 유저네임>:<몽고디비 유저비번>@<클러스터 명>-cluster.lbv1cwr.mongodb.net/

여기까지는 몽고디비 Compass에서 클러스터를 생성하고 커넥트할 때 넣는 url과 동일하므로 그 url을 가져와준다.

(주소 중 lbv1cwr는 클러스터의 고유 식별자이므로 클러스터마다 다름)

 

그 주소 뒤에 있는 graffin 이라는 부분이 내가 새 클러스터에 새로 만들어준 database name이다.

 

그 뒤에 ./backup/design-market 이렇게 넣게되면

아까 백업해둔 경로에서 design-market 이라는 데이터베이스의 데이터를 모두 가져오게 된다.

 

이렇게 하면 깔끔하게 로컬 디비에 있던 자료들을 모두 새로운 클러스터로 가져올 수 있다.

다만 이 방법은 모든 파일을 모두 새로운 곳에 그대로 가져오는 방법이므로 신규로 할 때만 적용.

 

기존꺼 덮어쓰기, 덮어쓰지 않기, 컬렉션별로 가져오기 등은 이후에 기회가 되면 따로 포스팅 해두려고 한다.