diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 71b5e928..72bf9365 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -45,7 +45,10 @@ android { jvmTarget = "17" } +} +ksp { + arg("room.schemaLocation", "$projectDir/schemas") } dependencies { diff --git a/app/schemas/app.closer.data.local.AppDatabase/1.json b/app/schemas/app.closer.data.local.AppDatabase/1.json new file mode 100644 index 00000000..3431bb1d --- /dev/null +++ b/app/schemas/app.closer.data.local.AppDatabase/1.json @@ -0,0 +1,138 @@ +{ + "formatVersion": 1, + "database": { + "version": 1, + "identityHash": "4c0a60329b23e0bc0526d7cb7e7269b9", + "entities": [ + { + "tableName": "question", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `category_id` TEXT NOT NULL, `depth_level` INTEGER NOT NULL, `is_premium` INTEGER NOT NULL, `type` TEXT NOT NULL, `tags` TEXT NOT NULL, `answer_config` TEXT NOT NULL, `pack_id` TEXT, `created_at` INTEGER NOT NULL, `status` TEXT NOT NULL, PRIMARY KEY(`id`))", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "text", + "columnName": "text", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "categoryId", + "columnName": "category_id", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "depthLevel", + "columnName": "depth_level", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isPremium", + "columnName": "is_premium", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "type", + "columnName": "type", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "tags", + "columnName": "tags", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "answerConfig", + "columnName": "answer_config", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "packId", + "columnName": "pack_id", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "createdAt", + "columnName": "created_at", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "status", + "columnName": "status", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "id" + ] + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "question_category", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `display_name` TEXT NOT NULL, `description` TEXT NOT NULL, `access` TEXT NOT NULL, `icon_name` TEXT NOT NULL, PRIMARY KEY(`id`))", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "displayName", + "columnName": "display_name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "description", + "columnName": "description", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "access", + "columnName": "access", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "iconName", + "columnName": "icon_name", + "affinity": "TEXT", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "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, '4c0a60329b23e0bc0526d7cb7e7269b9')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/java/app/closer/data/local/AppDatabase.kt b/app/src/main/java/app/closer/data/local/AppDatabase.kt index 767ca249..eafd816a 100644 --- a/app/src/main/java/app/closer/data/local/AppDatabase.kt +++ b/app/src/main/java/app/closer/data/local/AppDatabase.kt @@ -10,7 +10,7 @@ import app.closer.data.local.entity.QuestionEntity @Database( entities = [QuestionEntity::class, CategoryEntity::class], version = 1, - exportSchema = false + exportSchema = true ) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() {