From f367c79e8edd97046853489358e7c435631bb072 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 2 Nov 2020 01:42:10 +0530 Subject: [PATCH] app: turn on schema generation Signed-off-by: Harsh Shandilya --- app/build.gradle | 5 + .../2.json | 198 ++++++++++++++++++ .../lobsters/data/source/PostsDatabase.kt | 2 +- 3 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 app/schemas/dev.msfjarvis.lobsters.data.source.PostsDatabase/2.json diff --git a/app/build.gradle b/app/build.gradle index 6e9aef7f..1ef98102 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,6 +11,11 @@ android { defaultConfig { applicationId "dev.msfjarvis.lobsters" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + javaCompileOptions { + annotationProcessorOptions { + arguments += ["room.schemaLocation": "$projectDir/schemas".toString()] + } + } } buildTypes { diff --git a/app/schemas/dev.msfjarvis.lobsters.data.source.PostsDatabase/2.json b/app/schemas/dev.msfjarvis.lobsters.data.source.PostsDatabase/2.json new file mode 100644 index 00000000..977d35a6 --- /dev/null +++ b/app/schemas/dev.msfjarvis.lobsters.data.source.PostsDatabase/2.json @@ -0,0 +1,198 @@ +{ + "formatVersion": 1, + "database": { + "version": 2, + "identityHash": "5146546ebef999689c82a1b89e667eb4", + "entities": [ + { + "tableName": "lobsters_posts", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`shortId` TEXT NOT NULL, `shortIdUrl` TEXT NOT NULL, `createdAt` TEXT NOT NULL, `title` TEXT NOT NULL, `url` TEXT NOT NULL, `score` INTEGER NOT NULL, `flags` INTEGER NOT NULL, `commentCount` INTEGER NOT NULL, `description` TEXT NOT NULL, `commentsUrl` TEXT NOT NULL, `submitterUser` TEXT NOT NULL, `tags` TEXT NOT NULL, `isLiked` INTEGER NOT NULL, PRIMARY KEY(`shortId`))", + "fields": [ + { + "fieldPath": "post.shortId", + "columnName": "shortId", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.shortIdUrl", + "columnName": "shortIdUrl", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.createdAt", + "columnName": "createdAt", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.title", + "columnName": "title", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.url", + "columnName": "url", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.score", + "columnName": "score", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.commentCount", + "columnName": "commentCount", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.description", + "columnName": "description", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.commentsUrl", + "columnName": "commentsUrl", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.submitterUser", + "columnName": "submitterUser", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.tags", + "columnName": "tags", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.isLiked", + "columnName": "isLiked", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "shortId" + ], + "autoGenerate": false + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "lobsters_saved_posts", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`shortId` TEXT NOT NULL, `shortIdUrl` TEXT NOT NULL, `createdAt` TEXT NOT NULL, `title` TEXT NOT NULL, `url` TEXT NOT NULL, `score` INTEGER NOT NULL, `flags` INTEGER NOT NULL, `commentCount` INTEGER NOT NULL, `description` TEXT NOT NULL, `commentsUrl` TEXT NOT NULL, `submitterUser` TEXT NOT NULL, `tags` TEXT NOT NULL, `isLiked` INTEGER NOT NULL, PRIMARY KEY(`shortId`))", + "fields": [ + { + "fieldPath": "post.shortId", + "columnName": "shortId", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.shortIdUrl", + "columnName": "shortIdUrl", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.createdAt", + "columnName": "createdAt", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.title", + "columnName": "title", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.url", + "columnName": "url", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.score", + "columnName": "score", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.flags", + "columnName": "flags", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.commentCount", + "columnName": "commentCount", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "post.description", + "columnName": "description", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.commentsUrl", + "columnName": "commentsUrl", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.submitterUser", + "columnName": "submitterUser", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.tags", + "columnName": "tags", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "post.isLiked", + "columnName": "isLiked", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "shortId" + ], + "autoGenerate": false + }, + "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, '5146546ebef999689c82a1b89e667eb4')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/java/dev/msfjarvis/lobsters/data/source/PostsDatabase.kt b/app/src/main/java/dev/msfjarvis/lobsters/data/source/PostsDatabase.kt index d1e8a36e..54f6425c 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/source/PostsDatabase.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/source/PostsDatabase.kt @@ -12,7 +12,7 @@ import dev.msfjarvis.lobsters.data.model.SavedLobstersEntity SavedLobstersEntity::class ], version = 2, - exportSchema = false, + exportSchema = true, ) @TypeConverters( LobstersApiTypeConverters::class,