Drift + Turso / LibSQL 연동
Flutter에서 가장 널리 쓰이는 SQLite ORM인 Drift를 Turso, libSQL과 함께 쓰고 싶다면, 이 문서가 그 절차를 안내해요. drift_libsql과 drift_flutter 패키지를 연결하면 로컬 replica와 원격 Turso 데이터베이스를 자동으로 동기화하는 앱을 만들 수 있어요.
출처: 문서
본문
시작 전 준비물
시작하기 전에 다음을 확인해 주세요.
단계별 진행
1. 프로젝트에 패키지 추가하기
flutter pub add drift_libsql drift drift_flutter dev:build_runner dev:drift_dev
2. 데이터베이스 자격 증명(credential) 가져오기
데이터베이스 URL과 인증 토큰을 준비해 주세요. 자세한 절차는 공식 문서의 "Retrieve database credentials" 안내를 참고하면 돼요. 이 값들은 환경 변수로 보관하는 것이 좋아요.
3. 테이블 스키마 만들기
class TaskTable extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get title => text()();
TextColumn get description => text()();
BoolColumn get completed => boolean()();
}
4. db 클래스 만들기
@DriftDatabase(tables: [TaskTable])
class AppDatabase extends _$AppDatabase {
AppDatabase(super.e);
@override
int get schemaVersion => 1;
}
5. build runner 실행하기
dart run build_runner build
6. db 생성하기
final db = AppDatabase(DriftLibsqlDatabase(
"${dir.path}/replica.db",
syncUrl: url,
authToken: token,
readYourWrites: true,
syncIntervalSeconds: 3,
));
7. SQL 작업 수행하기
await db.into(db.taskTable).insert(TaskTableCompanion.insert(
title: task.title,
description: task.description,
completed: task.completed));
더 알아보기 (Learn more)
- Flutter/Dart 퀵스타트 — libSQL 클라이언트 설치부터 연결, 쿼리 실행까지 한 번에 살펴보기
- Flutter/Dart 레퍼런스 — 클라이언트 설정 옵션과 트랜잭션 모드 전체 정리
- Turso CLI 설치 — Turso를 처음 설치하는 절차
- 데이터베이스 자격 증명 가져오기