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

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)