[flutter] 플러터 build_runner를 사용하여 데이터 마이그레이션 설정하기
플러터 앱을 개발하다보면 데이터 스키마가 변경될 때 해당 변화를 데이터베이스에 적용해야 하는 경우가 생깁니다. 이때 build_runner와 함께 사용하면 데이터 마이그레이션을 자동화할 수 있습니다. 이 글에서는 플러터 프로젝트에서 build_runner를 사용하여 데이터 마이그레이션을 설정하는 방법에 대해 알아보겠습니다.
1. build_runner 및 관련 패키지 설치
먼저, build_runner
및 moor
와 같은 데이터베이스 관련 패키지를 pubspec.yaml
파일에 추가합니다.
dev_dependencies:
build_runner: ^2.1.4
moor: ^4.5.0
그런 다음 터미널에서 아래 명령어를 실행하여 패키지를 설치합니다.
flutter pub get
2. Moor 데이터베이스 선언 및 마이그레이션 설정
다음으로, moor 데이터베이스를 선언하고 마이그레이션 설정을 합니다. 데이터베이스를 선언하는 파일에 아래와 같이 마이그레이션 티켓을 추가합니다.
@UseMoor(tables: [TodoTable], daos: [TodoDao])
class AppDatabase extends _$AppDatabase {
AppDatabase(QueryExecutor e) : super(e);
@override
int get schemaVersion => 2;
@override
MigrationStrategy get migration => MigrationStrategy(
onCreate: (Migrator m) {
return m.createAll();
},
onUpgrade: (m, from, to) async {
if (from == 1) {
// Perform migration from version 1 to 2
await m.createTable(newTable);
}
}
);
}
위 코드에서 schemaVersion
은 현재 데이터베이스의 버전을 나타내며, migration
은 데이터베이스 마이그레이션 전략을 정의합니다.
3. 데이터 마이그레이션 실행
마지막으로, 터미널에서 아래 명령어를 실행하여 build_runner를 통해 데이터 마이그레이션을 실행합니다.
flutter pub run build_runner build
이제 데이터베이스 마이그레이션을 자동화하기 위한 설정이 완료되었습니다.
데이터 마이그레이션 설정을 통해 데이터베이스 스키마의 변경사항을 쉽게 관리할 수 있으며, 플러터 앱의 유지보수성을 높일 수 있습니다.
참고 자료
위와 같이, 플러터 프로젝트에서 build_runner를 사용하여 데이터 마이그레이션을 설정할 수 있습니다.