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 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 260 private val MIGRATION_23_24 = object : Migration(23, 24) {
259 261 override fun migrate(db: SupportSQLiteDatabase) {
260 262 db.execSQL(
261 263 "CREATE TABLE IF NOT EXISTS `goals` (" +
262 264 "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
263 265 "`text` TEXT NOT NULL, " +
264   - "`status` TEXT NOT NULL DEFAULT 'active', " +
  266 + "`status` TEXT NOT NULL, " +
265 267 "`deadline` TEXT, " +
266 268 "`parentGoalId` INTEGER, " +
267 269 "`personId` INTEGER, " +
... ... @@ -269,7 +271,6 @@ abstract class AppDatabase : RoomDatabase() {
269 271 "`createdAt` INTEGER NOT NULL, " +
270 272 "`updatedAt` INTEGER NOT NULL)"
271 273 )
272   - db.execSQL("CREATE INDEX IF NOT EXISTS `index_goals_status` ON `goals` (`status`)")
273 274 db.execSQL("ALTER TABLE `followups` ADD COLUMN `goalId` INTEGER")
274 275 }
275 276 }
... ...