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

Turso로 마이그레이션하기

원문 보기 위키 갱신

Turso로 마이그레이션하기 (Migrate to Turso)

기존에 쓰던 SQLite 데이터베이스를 Turso로 옮기고 싶으신가요? 이 가이드는 마이그레이션 과정을 처음부터 끝까지 안내해요. Turso CLI를 쓰는 방법과 Platform API를 쓰는 방법 중 하나를 고를 수 있어요.

출처: 문서

본문

이 가이드는 기존 SQLite 데이터베이스를 Turso Cloud로 마이그레이션하는 과정을 안내해요. Turso CLI를 사용하거나 Platform API를 사용하는 방법 중에서 선택할 수 있어요.

마이그레이션 준비하기

SQLite 데이터베이스를 Turso로 가져오기 전에, Turso의 요구 사항과 호환되는지 확인해야 해요. 구체적으로는 데이터베이스가 WAL(Write-Ahead Logging) 모드를 사용하고 있어야 해요.

1. SQLite 데이터베이스 열기

SQLite 명령줄 도구나 아무 SQLite 클라이언트로 데이터베이스를 여세요:

sqlite3 path/to/your/database.db

2. WAL 저널 모드 설정

다음 명령을 실행해 데이터베이스를 WAL 모드로 전환하세요:

PRAGMA journal_mode='wal';

wal이 반환되면 변경이 성공한 거예요.

3. WAL 파일 체크포인트 및 truncate

체크포인트를 실행해 모든 변경 사항이 메인 데이터베이스 파일에 기록되게 하고, WAL 파일을 truncate하세요:

PRAGMA wal_checkpoint(truncate);

4. 저널 모드 확인

데이터베이스가 이제 WAL 모드인지 확인하세요:

PRAGMA journal_mode;

wal이 반환되어야 해요.

5. 데이터베이스 닫기

SQLite 셸을 종료하세요:

.exit

이제 데이터베이스가 Turso로 마이그레이션할 준비가 됐어요.

CLI 사용하기

Turso CLI로 로컬 SQLite 파일에서 새 데이터베이스를 만들 수 있어요:

1. Turso CLI 설치하기

Turso CLI가 설치되어 있고 인증되어 있는지 확인하세요.

2. SQLite 데이터베이스 가져오기

db import 명령으로 기존 SQLite 데이터베이스 파일을 가져오세요:

turso db import ~/path/to/my-database.db

데이터베이스는 파일 이름(확장자 .db 제외)을 따서 명명되고, 모든 테이블과 데이터, 스키마가 그대로 가져와져요.

3. 데이터베이스에 연결하기

이제 셸로 데이터베이스에 연결할 수 있어요:

turso db shell <database-name>

Platform API 사용하기

Platform API를 사용해 기존 SQLite 데이터베이스를 마이그레이션할 수도 있어요:

1. Turso CLI로 가입 또는 로그인하기

아직 없다면 Turso CLI를 설치하세요.

# Signup
turso auth signup
# Login
turso auth login

2. 새 Platform API 토큰 만들기

Turso CLI로 새 API 토큰을 만드세요:

turso auth api-tokens mint quickstart

토큰은 안전한 곳에 저장해 두세요. 데이터베이스와 데이터베이스 토큰을 만들 때 필요해요.

3. 계정 또는 조직 slug 알아내기

Platform API는 개인 계정으로도 조직으로도 사용할 수 있어요. Turso CLI로 계정이나 조직의 slug를 알아내야 해요:

turso org list

4. 가져오기용 데이터베이스 만들기

먼저 가져오기를 받을 준비가 된 데이터베이스를 만드세요:

curl -X POST "https://api.turso.tech/v1/organizations/{organizationSlug}/databases" \
  -L \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
      "name": "new-database",
      "group": "default",
      "seed": { "type": "database_upload" }
  }'

"type": "database_upload"를 담은 seed 매개변수는 데이터베이스 파일을 업로드할 계획임을 나타내요. 업로드를 진행하지 않으면 이 데이터베이스는 할당량(quota)에는 포함되지만 사용할 수는 없어요.

5. 데이터베이스 토큰 만들기

데이터베이스의 인증 토큰을 생성하세요:

curl -X POST "https://api.turso.tech/v1/organizations/{organizationSlug}/databases/{databaseName}/auth/tokens" \
  -L \
  -H "Authorization: Bearer ***"

이 토큰은 업로드 요청과 이후 데이터베이스로의 요청을 인증하는 데 사용돼요.

6. SQLite 데이터베이스 업로드하기

마지막으로 SQLite 데이터베이스 파일을 업로드하세요:

curl -X POST "https://{databaseName}-{organizationSlug}.turso.io/v1/upload" \
  -H "Authorization: Bearer ***" \
  --data-binary @/path/to/your/database.db

Authorization 헤더는 Platform API 토큰이 아니라 이전 단계에서 생성한 데이터베이스 토큰을 사용해요.

이제 어떤 Turso 클라이언트 라이브러리로도 새 Turso 데이터베이스에 연결할 준비가 됐어요.

더 알아보기 (Learn more)