[flutter] 플러터(sqflite)에서의 데이터베이스 업그레이드 방법

플러터 앱을 개발하다보면 기존 데이터베이스 스키마를 변경하거나 추가할 필요가 있을 수 있습니다. 이러한 경우 데이터베이스를 업그레이드하는 방법을 알고 있어야 합니다. 이번 글에서는 플러터를 사용하여 sqflite 데이터베이스를 업그레이드하는 방법에 대해 알아보겠습니다.

1. 데이터베이스 버전 제어

데이터베이스를 업그레이드하려면 버전을 제어해야 합니다. pubspec.yaml 파일에서 sqflite 패키지의 버전을 관리하세요.

dependencies:
  sqflite: ^x.x.x

2. onUpgrade 콜백 함수 구현

데이터베이스를 업그레이드하려면 openDatabase를 호출할 때 onUpgrade 콜백 함수를 구현해야 합니다. 이 콜백 함수에서 기존의 데이터베이스 스키마를 새로운 버전으로 변경할 수 있습니다.

var db = await openDatabase(
  path,
  version: newVersion,
  onCreate: (Database db, int version) async {
    // 생성 로직
  },
  onUpgrade: (Database db, int oldVersion, int newVersion) async {
    // 업그레이드 로직
  },
  onOpen: (Database db) async {
    // 오픈 로직
  },
);

3. 데이터 이전 처리

데이터베이스 스키마가 변경될 때, 기존 데이터를 새로운 형식에 맞게 변환해야 할 수도 있습니다. onUpgrade 콜백 함수 내에서 데이터 이전을 위한 처리를 추가할 수 있습니다.

4. 데이터베이스 버전 올리기

마지막으로, pubspec.yaml 파일에서 sqflite 패키지의 버전을 새로운 버전으로 업데이트합니다. 그런 다음, 기존 사용자가 앱을 업데이트하면 데이터베이스가 자동으로 업그레이드됩니다.

데이터베이스를 업그레이드하는 방법에 대해 간단히 살펴보았습니다. 데이터베이스 업그레이드는 앱의 지속적인 발전에 필수적인 요소이므로 신중히 다루어져야 합니다.

더 많은 정보가 필요하다면 sqflite 공식 문서를 참고하세요.