본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

알파 데이터베이스 마이그레이션 가이드 (Alpha database migration guide)

원문 보기 위키 갱신

D1의 오픈 베타는 2023년 10월에 시작됐어요. 새로 생성된 데이터베이스는 더 크고 안정적이며 성능이 좋은 다른 기반 아키텍처를 사용해요. 데이터베이스 크기가 늘어나고, 쿼리 처리량이 개선되며, 지연 시간도 줄었죠.

출처: 문서

본문

이 가이드에서는 알파(alpha) D1 데이터베이스를 프로덕션 준비 시스템(production-ready system)에서 다시 만들도록 안내할게요.

사전 요구사항 (Prerequisites)

  • wrangler 명령줄 도구가 설치되어 있어요.

  • wrangler 버전 3.33.0 이상(2024년 3월 출시)을 사용하고 있어요. 이전 버전에는 이 가이드에 필요한 --remote 플래그가 없기 때문이에요.

  • '알파' D1 데이터베이스. 2023년 7월 27일 이전에 생성된 모든 데이터베이스는 더 이상 지원되지 않고 프로덕션에 권장되지 않는 알파 스토리지 백엔드를 사용해요.

1. 데이터베이스가 알파인지 확인하기

npx wrangler d1 info <database_name>

데이터베이스가 알파라면, 명령 출력에 version이 alpha로 설정된 값이 포함돼요:

...
│ version           │ alpha                                 │
...

2. 수동 백업 만들기

npx wrangler d1 backup create <alpha_database_name>

3. 수동 백업 다운로드하기

아래 명령은 알파 데이터베이스의 수동 백업을 .sqlite3 파일로 다운로드해요:

npx wrangler d1 backup download <alpha_database_name> <backup_id> # See available backups with wrangler d1 backup list <database_name>

4. 수동 백업을 SQL 문으로 변환하기

아래 명령은 다운로드한 .sqlite3 파일에서 알파 데이터베이스의 수동 백업을 SQL 문으로 변환해요. 이 SQL은 새 데이터베이스로 가져올 수 있죠:

sqlite3 db_dump.sqlite3 .dump > db.sql

위 명령을 실행한 뒤에는 D1과 호환되도록 출력 SQL 파일을 편집해야 해요:

  • 파일에서 BEGIN TRANSACTION과 COMMIT;을 제거해요.

  • 다음 테이블 생성 문을 제거해요:

CREATE TABLE _cf_KV (
	key TEXT PRIMARY KEY,
	value BLOB
) WITHOUT ROWID;

5. 새 D1 데이터베이스 만들기

모든 새 D1 데이터베이스는 기본적으로 업데이트된 아키텍처를 사용해요.

다음 명령을 실행해 새 데이터베이스를 만들어요:

npx wrangler d1 create <new_database_name>

6. 새 D1 데이터베이스에 SQL 문 실행하기

npx wrangler d1 execute <new_database_name> --remote --file=./db.sql

7. 알파 데이터베이스 삭제하기

이전 알파 데이터베이스를 삭제하려면 다음을 실행해요:

npx wrangler d1 delete <alpha_database_name>

더 알아보기 (Learn more)