{
  "id": "android/room-migration-not-found",
  "signature": "IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.",
  "signature_zh": "IllegalStateException：Room 无法验证数据完整性。看起来您更改了架构但忘记更新版本号。您可以通过增加版本号来修复此问题。",
  "regex": "IllegalStateException: Room cannot verify the data integrity.*changed schema.*forgot to update the version number",
  "domain": "android",
  "category": "data_error",
  "subcategory": null,
  "root_cause": "Room database schema has changed (e.g., added column) but version number not incremented or migration not provided, causing integrity check failure.",
  "root_cause_type": "generic",
  "root_cause_zh": "Room 数据库架构已更改（例如添加了列），但版本号未增加或未提供迁移，导致完整性检查失败。",
  "versions": [
    {
      "version": "Room 2.4.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Room 2.5.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Room 2.6.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Delete app data or uninstall app",
      "why_fails": "Loses all user data; only works for development, not production.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "Set fallbackToDestructiveMigration() in Room database builder",
      "why_fails": "Destroys existing database on version mismatch, causing data loss; not suitable for production.",
      "fail_rate": 0.75,
      "condition": "",
      "sources": []
    },
    {
      "action": "Ignore the error and continue",
      "why_fails": "App crashes on database access; cannot proceed without fixing migration.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Increment database version and add migration: `@Database(entities = [User::class], version = 2)` and `val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL(\"ALTER TABLE User ADD COLUMN age INTEGER NOT NULL DEFAULT 0\") } }`",
      "success_rate": 0.9,
      "how": "Increment database version and add migration: `@Database(entities = [User::class], version = 2)` and `val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL(\"ALTER TABLE User ADD COLUMN age INTEGER NOT NULL DEFAULT 0\") } }`",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use `autoMigrations` annotation: `@Database(entities = [User::class], version = 2, autoMigrations = [AutoMigration(from = 1, to = 2)])` for simple changes like adding columns with defaults.",
      "success_rate": 0.85,
      "how": "Use `autoMigrations` annotation: `@Database(entities = [User::class], version = 2, autoMigrations = [AutoMigration(from = 1, to = 2)])` for simple changes like adding columns with defaults.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Export schema to JSON using `room.schemaLocation` in build.gradle, then use Room's automatic migration validator to detect issues.",
      "success_rate": 0.8,
      "how": "Export schema to JSON using `room.schemaLocation` in build.gradle, then use Room's automatic migration validator to detect issues.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Increment database version and add migration: `@Database(entities = [User::class], version = 2)` and `val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL(\"ALTER TABLE User ADD COLUMN age INTEGER NOT NULL DEFAULT 0\") } }`",
    "Use `autoMigrations` annotation: `@Database(entities = [User::class], version = 2, autoMigrations = [AutoMigration(from = 1, to = 2)])` for simple changes like adding columns with defaults.",
    "Export schema to JSON using `room.schemaLocation` in build.gradle, then use Room's automatic migration validator to detect issues."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://developer.android.com/training/data-storage/room/migrating",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.89,
  "fix_success_rate": 0.87,
  "resolvable": "true",
  "first_seen": "2023-12-01",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}