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

플러터에서 sqflite 패키지를 사용하여 데이터베이스를 다루다 보면 때때로 데이터베이스 스키마를 업데이트해야 하는 경우가 생길 수 있습니다. 이때 데이터베이스 마이그레이션을 통해 쉽게 스키마를 변경할 수 있습니다.

데이터베이스 마이그레이션이란?

데이터베이스 마이그레이션은 기존의 데이터베이스 스키마를 변경하거나 업그레이드하는 프로세스를 말합니다. 이를 통해 새로운 필드를 추가하거나 기존 필드를 수정하는 등의 변경 작업을 수행할 수 있습니다.

sqflite에서 데이터베이스 마이그레이션 방법

sqflite에서는 openDatabase 함수를 사용하여 데이터베이스를 오픈하고, onCreate 매개변수를 통해 초기 데이터베이스 테이블을 생성하는 로직을 작성할 수 있습니다. 마이그레이션을 위해 onUpgrade 매개변수를 활용하여 데이터베이스 스키마 변경 시 수행할 작업을 정의할 수 있습니다.

Future<Database> _openDatabase() async {
  return sqflite.openDatabase(
    'my_database.db',
    onCreate: (db, version) {
      // 데이터베이스 초기화 로직
    },
    onUpgrade: (db, oldVersion, newVersion) {
      if (oldVersion < 2) {
        // 데이터베이스 버전 1에서 2로 업그레이드하는 작업 수행
      }
      // 다른 버전 간의 마이그레이션 작업 수행
    },
    version: 2,
  );
}

위 예시 코드에서 onUpgrade 콜백 함수는 이전 버전과 새로운 버전을 비교하여 필요한 마이그레이션 작업을 수행할 수 있습니다.

이렇게하여 sqflite를 사용하여 데이터베이스 마이그레이션을 간단히 수행할 수 있습니다.

참고 자료