[flutter] 플러터 objectbox에서 데이터베이스 마이그레이션 도구는?

ObjectBox의 마이그레이션 도구를 사용하려면 다음 단계를 따라야 합니다:

  1. ObjectBox 패키지를 플러터 프로젝트에 추가합니다. pubspec.yaml 파일에서 dependencies 섹션에 다음 줄을 추가하세요:
    objectbox: ^0.14.0
    

    이후 터미널에서 flutter packages get을 실행하여 패키지를 설치하세요.

  2. 마이그레이션을 수행할 때마다 버전을 업데이트해야 합니다. lib/main.dart 파일의 buildObjectBox() 함수에서 마이그레이션 코드를 작성하세요. 예를 들어, 다음과 같이 작성할 수 있습니다:
    // ObjectBox 인스턴스 생성
    var store = await openStore();
    
    // 마이그레이션 코드 작성
    Future<ObjectBoxModel> prepareMigration(Directory dir) async {
      var model = ObjectBoxModel();
    
      // 기존 엔티티 버전을 추가
      model.defineModel(dir, entities: [Entity1${'$'}ObjectBox.getEntityModel()]);
      model.defineModel(dir, entities: [Entity2${'$'}ObjectBox.getEntityModel()]);
    
      // 변경된 엔티티 스키마를 추가
      model.defineModel(dir, entities: [Entity3${'$'}ObjectBox.getEntityModel()]);
      model.defineModel(dir, entities: [Entity4${'$'}ObjectBox.getEntityModel()]);
    
      return model;
    }
    
    // 마이그레이션 수행
    await store.runInTransaction(() async {
      var dir = Directory(store.directory);
      var model = await prepareMigration(dir);
      var box = Box<Object>(store);
      box.close();
      store.close();
    
      var newStore = await openStore(model: model); // 새로운 스키마 모델로 저장소 열기
      print('Migration complete');
    });
    
  3. 마이그레이션 코드를 적용하기 전에 데이터베이스를 백업하는 것이 좋습니다. 마이그레이션이 예상대로 진행되지 않을 경우 백업 데이터를 사용할 수 있습니다.

  4. 플러터 애플리케이션을 실행하여 마이그레이션을 수행하고 변경된 데이터베이스를 사용해보세요. 마이그레이션이 성공적으로 수행될 때까지 애플리케이션을 테스트하는 것이 중요합니다.

ObjectBox에서 데이터베이스 마이그레이션을 수행하는 방법에 대한 더 자세한 내용은 ObjectBox의 공식 문서를 참조하세요.