[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
를 사용하여 데이터베이스 마이그레이션을 간단히 수행할 수 있습니다.