들어가며

본 글은
Supabase 프로젝트가 90일 이상 일시정지(Paused)된 이후 Dashboard를 통한 복구가 불가능한 상황에서,
기존 프로젝트의 데이터베이스 백업을 활용하여 새로운 Supabase 프로젝트로
데이터베이스를 직접 복구 및 마이그레이션한 전 과정을 기록한 글입니다.
설치하기
1. PostgreSQL 설치 및 환경변수 등록
https://www.postgresql.org/download/windows/
PostgreSQL: Windows installers
Windows installers Interactive installer by EDB Download the installer certified by EDB for all supported Postgres versions. Note! This installer is hosted by EDB and not on the PostgreSQL community servers. If you have issues with the website it's hosted
www.postgresql.org
PostgreSQL을 설치해주세요.

C:\Program Files\PostgreSQL
파일탐색기를 열어 위 경로를 입력후 엔터를 눌러주세요.
다운로드된 PostgreSQL 폴더로 이동합니다.

버전명(18) 폴더를 클릭해 들어갑니다.

bin 폴더를 클릭해 들어가주세요.

bin 폴더에 들어가있는 상태에서 경로를 복사해주세요.

시스템 환경 변수 편집을 켜주세요

1) '환경 변수' 버튼을 클릭해주세요.
2) Path부분을 더블클릭 해주세요.

복사해놓은 PostgreSQL > bin 폴더의 경로를 붙여넣기 한 후 '확인' 버튼을 클릭해주세요.

psql --version
cmd를 열어 위 명령어를 입력했을 때 버전이 잘 뜨면 정상적으로 설치가 완료된 것입니다.
2. 7-Zip 프로그램 설치
7-Zip
7-Zip 7-Zip is a file archiver with a high compression ratio. Download 7-Zip 25.01 (2025-08-03) for Windows x64 (64-bit): Link Type Windows Size Download .exe 64-bit x64 1.6 MB Download 7-Zip 25.01 for another Windows platforms (32-bit x86 or ARM64): Link
www.7-zip.org
7-Zip을 설치해주세요.
(일시정지된 프로젝트의 백업파일을 압축해제 하기위해 다운로드하는 프로그램입니다.)
시작하기
1. 백업 파일 다운로드

1) '일시정지된 프로젝트'에 들어갑니다.
2) 'Download backups' 버튼을 누릅니다.
3) 'Database backup' 버튼을 눌러 백업 파일을 다운로드합니다.
2. 새 프로젝트(마이그레이션 할 프로젝트) 생성

1) 마이그레이션할 새로운 프로젝트를 생성합니다.(프로젝트 생성 시 DB 비밀번호를 잘 복사하여 메모장에 붙여놔주세요.)
2) 새 프로젝트를 클릭합니다.
3. 세션 풀러 경로 복사

상단 헤더에 'Connect' 버튼을 클릭합니다.

Method를 세션 풀러(Session pooler)로 변경합니다.

세션 풀러 경로를 복사합니다.
4. 세션 풀러 DB 접속 테스트(중요)
이 부분 중요합니다.(이제 psql 명령어로 세션 풀러 DB 접속 테스트를 할 것입니다.)

cmd를 관리자 권한으로 실행합니다.
> 명령어 구조
psql "{복사한 세션 풀러 경로}"
* 따옴표 안에 세션 풀러 경로를 넣어야합니다.
> 예시
psql "postgresql://postgres.fgeoakapgmhvrnkqqmfz:{DB 비밀번호}@aws-1-ap-northeast-2.pooler.supabase.com:5432/postgres"
* DB 비밀번호는 새 프로젝트를 생성할 때 입력한 데이터베이스 비밀번호입니다.
위 명령어 구조를 참고하여 본인 프로젝트에 맞게 수정(DB 비밀번호 등) 후 명령어를 입력합니다.
(이 부분이 가장 중요합니다. 만약 오류가 발생한다면 명령어 구조를 다시 한 번 참고해주세요.)
(따옴표를 잘 입력했는지, DB 비밀번호를 본인 프로젝트에 맞게 수정하였는지, 세션 풀러 경로가 올바른지 등을 확인해주세요.)

명령어 실행 후 'postgres =>'와 같은 로그가 찍혔다면 세션 풀러 DB 접속 테스트가 정상적으로 완료된 것입니다.
5. 백업 파일 압축 해제

파일관리자를 열어 '다운로드된 백업 파일이 있는 경로'로 이동합니다.
백업파일을 우클릭하고 7-Zip 메뉴를 선택하여 '여기에 압축 풀기' 메뉴를 클릭합니다.

유형이 BACKUP파일인 파일이 생겼다면 정상적으로 압축이 풀린 것입니다.
6. 마이그레이션

백업 파일이 위치한 경로에서 파일관리자 경로에 cmd를 입력하여 해당 경로를 기준으로 cmd를 실행합니다.
> 명령어 구조
psql ^
-d "{세션 풀러 경로}" ^
-f {백업파일명}.backup
* 따옴표 안에 세션 풀러 경로를 넣어야합니다.
> 예시
psql ^
-d "postgresql://postgres.fgeoakapgmhvrnkqqmfz:{DB 비밀번호}@aws-1-ap-northeast-2.pooler.supabase.com:5432/postgres" ^
-f db_cluster-25-09-2025@15-30-12.backup
위 명령어 구조를 참고하여 본인 프로젝트에 맞게 수정(DB 비밀번호 등) 후 명령어를 입력합니다.
(이 부분이 가장 중요합니다. 만약 오류가 발생한다면 명령어 구조를 다시 한 번 참고해주세요.)
(따옴표를 잘 입력했는지, DB 비밀번호를 본인 프로젝트에 맞게 수정하였는지, 세션 풀러 경로가 올바른지 등을 확인해주세요.)

명령어 입력 후 잠시 기다리면 프로젝트가 모두 마이그레이션 됩니다.
(프로젝트 규모에 따라 작업 시간이 상이합니다.)

마이그레이션한 프로젝트에 접속합니다.
모든 테이블, 데이터, RLS 정책이 마이그레이션 된 것을 확인할 수 있습니다.
감사합니다.
'백엔드 > Supabase' 카테고리의 다른 글
| [Supabase] 참조테이블의 컬럼값을 기준으로 정렬하는 방법 (1) | 2025.09.28 |
|---|---|
| [Supabase] 정책 생성 SQL 템플릿 코드 (1) | 2025.04.28 |
| [Supabase] 배열 객체 컬럼을 가진 테이블을 생성하는 방법 (0) | 2025.04.28 |
| [Supabase] 수파베이스 이미지 불러오기 오류 (0) | 2025.04.17 |
| [Supabase] 수파베이스 이미지 업로드 오류 체크사항 (1) | 2025.04.17 |