프로젝트가 이미 KSP를 사용하고 있어 KSP 인수 기반으로 Room 스키마 export를 활성화했습니다.
- app/build.gradle: ksp { room.schemaLocation 등 } 추가
- Room DB 클래스 3종: exportSchema=true
- app/schemas 디렉터리 버전 관리
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
{
 | 
						|
  "formatVersion": 1,
 | 
						|
  "database": {
 | 
						|
    "version": 2,
 | 
						|
    "identityHash": "7429c2998f64cb70e5e8b1d2525a4708",
 | 
						|
    "entities": [
 | 
						|
      {
 | 
						|
        "tableName": "alarms",
 | 
						|
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `title` TEXT NOT NULL, `time` INTEGER NOT NULL, `days` TEXT NOT NULL, `contentId` INTEGER NOT NULL, `contentTitle` TEXT NOT NULL, `contentCreatorNickname` TEXT NOT NULL, `volume` INTEGER NOT NULL, `isEnabled` INTEGER NOT NULL)",
 | 
						|
        "fields": [
 | 
						|
          {
 | 
						|
            "fieldPath": "id",
 | 
						|
            "columnName": "id",
 | 
						|
            "affinity": "INTEGER",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "title",
 | 
						|
            "columnName": "title",
 | 
						|
            "affinity": "TEXT",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "time",
 | 
						|
            "columnName": "time",
 | 
						|
            "affinity": "INTEGER",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "days",
 | 
						|
            "columnName": "days",
 | 
						|
            "affinity": "TEXT",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "contentId",
 | 
						|
            "columnName": "contentId",
 | 
						|
            "affinity": "INTEGER",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "contentTitle",
 | 
						|
            "columnName": "contentTitle",
 | 
						|
            "affinity": "TEXT",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "contentCreatorNickname",
 | 
						|
            "columnName": "contentCreatorNickname",
 | 
						|
            "affinity": "TEXT",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "volume",
 | 
						|
            "columnName": "volume",
 | 
						|
            "affinity": "INTEGER",
 | 
						|
            "notNull": true
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "fieldPath": "isEnabled",
 | 
						|
            "columnName": "isEnabled",
 | 
						|
            "affinity": "INTEGER",
 | 
						|
            "notNull": true
 | 
						|
          }
 | 
						|
        ],
 | 
						|
        "primaryKey": {
 | 
						|
          "autoGenerate": true,
 | 
						|
          "columnNames": [
 | 
						|
            "id"
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        "indices": [],
 | 
						|
        "foreignKeys": []
 | 
						|
      }
 | 
						|
    ],
 | 
						|
    "views": [],
 | 
						|
    "setupQueries": [
 | 
						|
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
 | 
						|
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '7429c2998f64cb70e5e8b1d2525a4708')"
 | 
						|
    ]
 | 
						|
  }
 | 
						|
} |