목적

infisical을 0.4.2버전에서 1.0.8버전으로 업그레이드 하려고 하는데 MongoDB를 더 이상 지원하지 않고 PostgresSQL만 지원한다. 기존 MongoDB에 있던 데이터들을 PostgreSQL로 마이그레이션하자.

참고

https://infisical.com/docs/self-hosting/guides/mongo-to-postgres → 공식 마이그레이션 방법인데 그대로 따라하면 잘 안됨

https://infisical.com/blog/postgresql-migration-technical

조건

docker-compose를 통해 로컬에 mongodb, postgresql를 실행

아래와 같이 작성된 docker-compose.yaml 파일을 만든다.

version: '3.1'

services:
  mongodb:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    ports:
      - "27017:27017"
    volumes:
      - mongodb_data:/data/db

  postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: example
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  mongodb_data:
  postgres_data:

해당 파일이 있는 곳에서 아래 명령어 실행

docker-compose up -d

MongoDB Data 가져오기

MongoDB 데이터를 로컬 머신에 덤프하기

mongodump --uri=<your_mongo_prod_uri> --archive="mongodump-db" --db=<db name> --excludeCollection=auditlogs

이 데이터를 로컬 MongoDB 인스턴스로 복원. 아래 명령어 그대로 실행하면 됨