Sobes.tech
Junior — Middle

O Room fornece suporte integrado para atualizações automáticas do banco de dados quando há alterações no esquema?

sobes.tech IA

Resposta da IA

A Room não fornece uma migração automática do banco de dados ao alterar o esquema. Se alterar a estrutura do banco (por exemplo, adicionando ou removendo colunas), deve descrever explicitamente as migrações usando o objeto Migration. Sem isso, a aplicação irá gerar um erro ao iniciar com um esquema novo e uma versão antiga do banco.

Exemplo de migração:

val MIGRATION_1_2 = object : Migration(1, 2) {
    override fun migrate(database: SupportSQLiteDatabase) {
        database.execSQL("ALTER TABLE users ADD COLUMN age INTEGER DEFAULT 0 NOT NULL")
    }
}

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

Assim, o desenvolvedor é responsável por criar e aplicar migrações ao alterar o esquema.