Lorsque vous rencontrerez ce message pour la première fois, vous travaillerez probablement sur une version non publiée de la base de données. Si tel est le cas, vous ne devriez probablement pas incrémenter la version de la base de données . Effacer simplement les données de l'application vous fera passer l'exception.
Si vous n'incrémentez pas la base de données (recommandé):
Vous devez effacer les données d'application de l'application des paramètres Android. Vous pouvez également désinstaller la version précédente de l'application, puis installer la nouvelle version pour faire passer l'exception. Cette dernière approche ne fonctionne pas dans certaines conditions (par exemple lorsque l'autorisation de sauvegarde est activée)
Étant donné que la suppression des données d'application fonctionne toujours, j'emprunte cette voie à chaque fois.
Si vous incrémentez la version de la base de données:
Vous devrez écrire le code de migration de la base de données pour prendre en compte les modifications apportées au schéma de base de données. Voir ici pour plus d' informations sur la migration.
Une alternative à l'écriture du code de migration de base de données consiste à faire appel fallbackToDestructiveMigration
au générateur de base de données Room. Ce n'est probablement pas une bonne idée. Oublier de supprimer cet appel, puis oublier de mettre à niveau la base de données entraînera une perte de données.
// Using this fallback is almost certainly a bad idea
Database database = Room.databaseBuilder(context, Database.class, DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();
Encore une fois, ni l'incrémentation de la version de la base de données ni le retour à une migration destructive ne sont nécessaires si le schéma de base de données précédent n'est pas vivant dans la nature .