val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
val cursor = database.query("SELECT * FROM user")
while(cursor.moveToNext()) {
val id = cursor.getLong(cursor.getColumnIndex("_id"))
val password = cursor.getString(cursor.getColumnIndex("password"))
//-- Hash your password --//
database.execSQL("UPDATE user
SET password = hashedPassword
WHERE _id = id;")
}
}
}
1条答案
按热度按时间g2ieeal71#
定义迁移时,您可以访问SupportSQLiteDatabase,通过它可以执行SQL查询。您可以使用SQL查询通过update语句更新以前的数据。
你可以用返回Cursor的查询方法来访问旧数据。游标可以用来获取用户的id和密码等信息。最终代码可能如下所示。
不要忘记更新数据库版本。