[kotlin] 룸 데이터베이스의 데이터베이스 마이그레이션 설정하기

여기서는 룸 데이터베이스의 데이터베이스 마이그레이션 설정 방법을 알아보겠습니다.

1. 마이그레이션 클래스 생성

룸 라이브러리는 데이터베이스 버전이 올라갔을 때 실행되는 마이그레이션을 처리하기 위해 Migration 클래스를 제공합니다. 새로운 데이터베이스 버전으로 업그레이드하기 위한 마이그레이션 클래스를 작성해야 합니다.

val MIGRATION_1_2: Migration = object : Migration(1, 2) {
    override fun migrate(database: SupportSQLiteDatabase) {
        // 데이터베이스 마이그레이션 로직 작성
    }
}

위 코드에서 MIGRATION_1_2는 업그레이드될 데이터베이스 버전을 정의하고, migrate 메서드에서는 실제 데이터베이스 마이그레이션 로직을 작성합니다.

2. 데이터베이스 빌더에 마이그레이션 추가

마이그레이션 클래스를 생성했으면, 이를 데이터베이스 빌더(Room.databaseBuilder)에 추가해야 합니다.

val db = Room.databaseBuilder(
    applicationContext,
    AppDatabase::class.java, "database-name"
).addMigrations(MIGRATION_1_2)
.build()

위 코드에서 addMigrations 메서드로 생성한 마이그레이션 클래스를 추가하고, build 메서드로 데이터베이스를 빌드합니다.

3. 마이그레이션 테스트

마이그레이션을 구현한 후에는 반드시 테스트해야 합니다. 새로운 버전의 앱을 설치하거나 업데이트하여 기존 데이터가 적절히 마이그레이션되는지 확인해야 합니다.

마지막으로, 데이터베이스 마이그레이션 시에는 반드시 데이터의 무결성을 유지해야 하며, 테스트코드를 작성하여 업데이트가 정상적으로 이루어지도록 하는 것이 중요합니다.