Commit 6f509ad8ecf6d9cfd3872d0c2715b1ecade220b6

Authored by yibo
1 parent eb247605

fix(goal): 修正 MIGRATION_23_24 导致启动崩溃

Room 校验时 Expected vs Found 两处不匹配:
1. status 列:migration SQL 写了 DEFAULT 'active',Room 期望 defaultValue=undefined
   (Entity 未用 @ColumnInfo(defaultValue=...),Room 不把 Kotlin 默认值当 SQL DEFAULT)
2. 多余 CREATE INDEX index_goals_status:@Entity 无 @Index,Room Expected indices=[]

修复:migration 去掉 DEFAULT 子句 + 去掉 CREATE INDEX 这两行。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lifelog-recorder/app/src/main/kotlin/com/lemon/lifelog/data/AppDatabase.kt
@@ -254,14 +254,16 @@ abstract class AppDatabase : RoomDatabase() { @@ -254,14 +254,16 @@ abstract class AppDatabase : RoomDatabase() {
254 } 254 }
255 } 255 }
256 256
257 - /** P2 #6/#7:goals 新表 + followups.goalId 挂载字段。 */ 257 + /** P2 #6/#7:goals 新表 + followups.goalId 挂载字段。
  258 + * 注意:status 不能带 DEFAULT 'active',Room 期望 defaultValue='undefined'(无 @ColumnInfo defaultValue);
  259 + * 也不加 index——@Entity 上没有 @Index,Room expected indices=[]。 */
258 private val MIGRATION_23_24 = object : Migration(23, 24) { 260 private val MIGRATION_23_24 = object : Migration(23, 24) {
259 override fun migrate(db: SupportSQLiteDatabase) { 261 override fun migrate(db: SupportSQLiteDatabase) {
260 db.execSQL( 262 db.execSQL(
261 "CREATE TABLE IF NOT EXISTS `goals` (" + 263 "CREATE TABLE IF NOT EXISTS `goals` (" +
262 "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + 264 "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
263 "`text` TEXT NOT NULL, " + 265 "`text` TEXT NOT NULL, " +
264 - "`status` TEXT NOT NULL DEFAULT 'active', " + 266 + "`status` TEXT NOT NULL, " +
265 "`deadline` TEXT, " + 267 "`deadline` TEXT, " +
266 "`parentGoalId` INTEGER, " + 268 "`parentGoalId` INTEGER, " +
267 "`personId` INTEGER, " + 269 "`personId` INTEGER, " +
@@ -269,7 +271,6 @@ abstract class AppDatabase : RoomDatabase() { @@ -269,7 +271,6 @@ abstract class AppDatabase : RoomDatabase() {
269 "`createdAt` INTEGER NOT NULL, " + 271 "`createdAt` INTEGER NOT NULL, " +
270 "`updatedAt` INTEGER NOT NULL)" 272 "`updatedAt` INTEGER NOT NULL)"
271 ) 273 )
272 - db.execSQL("CREATE INDEX IF NOT EXISTS `index_goals_status` ON `goals` (`status`)")  
273 db.execSQL("ALTER TABLE `followups` ADD COLUMN `goalId` INTEGER") 274 db.execSQL("ALTER TABLE `followups` ADD COLUMN `goalId` INTEGER")
274 } 275 }
275 } 276 }