알파 데이터베이스 마이그레이션 가이드 (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>