{ "formatVersion": 1, "database": { "version": 2, "identityHash": "67a9c26297d65d76f54edc99ac9a7930", "entities": [ { "tableName": "sources", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `address` TEXT NOT NULL, `isActive` INTEGER NOT NULL, `createdAt` INTEGER NOT NULL)", "fields": [ { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "address", "columnName": "address", "affinity": "TEXT", "notNull": true }, { "fieldPath": "isActive", "columnName": "isActive", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "createdAt", "columnName": "createdAt", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "id" ] } }, { "tableName": "subsonic_sources", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `username` TEXT NOT NULL, `password` TEXT NOT NULL, `useTokenAuth` INTEGER NOT NULL, PRIMARY KEY(`sourceId`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "username", "columnName": "username", "affinity": "TEXT", "notNull": true }, { "fieldPath": "password", "columnName": "password", "affinity": "TEXT", "notNull": true }, { "fieldPath": "useTokenAuth", "columnName": "useTokenAuth", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId" ] }, "indices": [ { "name": "index_subsonic_sources_sourceId", "unique": false, "columnNames": [ "sourceId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_subsonic_sources_sourceId` ON `${TABLE_NAME}` (`sourceId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "artists", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `id` TEXT NOT NULL, `name` TEXT NOT NULL, `albumCount` INTEGER NOT NULL, `starred` INTEGER, `coverArt` TEXT, PRIMARY KEY(`sourceId`, `id`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "albumCount", "columnName": "albumCount", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "starred", "columnName": "starred", "affinity": "INTEGER" }, { "fieldPath": "coverArt", "columnName": "coverArt", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId", "id" ] }, "indices": [ { "name": "index_artists_sourceId", "unique": false, "columnNames": [ "sourceId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_artists_sourceId` ON `${TABLE_NAME}` (`sourceId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "albums", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `id` TEXT NOT NULL, `artistId` TEXT, `name` TEXT NOT NULL, `albumArtist` TEXT, `created` INTEGER NOT NULL, `coverArt` TEXT, `genre` TEXT, `year` INTEGER, `starred` INTEGER, `songCount` INTEGER NOT NULL, `frequentRank` INTEGER, `recentRank` INTEGER, PRIMARY KEY(`sourceId`, `id`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "artistId", "columnName": "artistId", "affinity": "TEXT" }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "albumArtist", "columnName": "albumArtist", "affinity": "TEXT" }, { "fieldPath": "created", "columnName": "created", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "coverArt", "columnName": "coverArt", "affinity": "TEXT" }, { "fieldPath": "genre", "columnName": "genre", "affinity": "TEXT" }, { "fieldPath": "year", "columnName": "year", "affinity": "INTEGER" }, { "fieldPath": "starred", "columnName": "starred", "affinity": "INTEGER" }, { "fieldPath": "songCount", "columnName": "songCount", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "frequentRank", "columnName": "frequentRank", "affinity": "INTEGER" }, { "fieldPath": "recentRank", "columnName": "recentRank", "affinity": "INTEGER" } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId", "id" ] }, "indices": [ { "name": "index_albums_sourceId", "unique": false, "columnNames": [ "sourceId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_albums_sourceId` ON `${TABLE_NAME}` (`sourceId`)" }, { "name": "index_albums_sourceId_artistId", "unique": false, "columnNames": [ "sourceId", "artistId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_albums_sourceId_artistId` ON `${TABLE_NAME}` (`sourceId`, `artistId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "playlists", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `id` TEXT NOT NULL, `name` TEXT NOT NULL, `comment` TEXT, `coverArt` TEXT, `songCount` INTEGER NOT NULL, `created` INTEGER NOT NULL, PRIMARY KEY(`sourceId`, `id`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "name", "columnName": "name", "affinity": "TEXT", "notNull": true }, { "fieldPath": "comment", "columnName": "comment", "affinity": "TEXT" }, { "fieldPath": "coverArt", "columnName": "coverArt", "affinity": "TEXT" }, { "fieldPath": "songCount", "columnName": "songCount", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "created", "columnName": "created", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId", "id" ] }, "indices": [ { "name": "index_playlists_sourceId", "unique": false, "columnNames": [ "sourceId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playlists_sourceId` ON `${TABLE_NAME}` (`sourceId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "playlist_songs", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `playlistId` TEXT NOT NULL, `songId` TEXT NOT NULL, `position` INTEGER NOT NULL, PRIMARY KEY(`sourceId`, `playlistId`, `position`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "playlistId", "columnName": "playlistId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "songId", "columnName": "songId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "position", "columnName": "position", "affinity": "INTEGER", "notNull": true } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId", "playlistId", "position" ] }, "indices": [ { "name": "index_playlist_songs_sourceId_playlistId", "unique": false, "columnNames": [ "sourceId", "playlistId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playlist_songs_sourceId_playlistId` ON `${TABLE_NAME}` (`sourceId`, `playlistId`)" }, { "name": "index_playlist_songs_sourceId_songId", "unique": false, "columnNames": [ "sourceId", "songId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_playlist_songs_sourceId_songId` ON `${TABLE_NAME}` (`sourceId`, `songId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "songs", "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceId` INTEGER NOT NULL, `id` TEXT NOT NULL, `albumId` TEXT, `artistId` TEXT, `title` TEXT NOT NULL, `album` TEXT, `artist` TEXT, `duration` INTEGER, `track` INTEGER, `disc` INTEGER, `starred` INTEGER, `genre` TEXT, PRIMARY KEY(`sourceId`, `id`), FOREIGN KEY(`sourceId`) REFERENCES `sources`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "INTEGER", "notNull": true }, { "fieldPath": "id", "columnName": "id", "affinity": "TEXT", "notNull": true }, { "fieldPath": "albumId", "columnName": "albumId", "affinity": "TEXT" }, { "fieldPath": "artistId", "columnName": "artistId", "affinity": "TEXT" }, { "fieldPath": "title", "columnName": "title", "affinity": "TEXT", "notNull": true }, { "fieldPath": "album", "columnName": "album", "affinity": "TEXT" }, { "fieldPath": "artist", "columnName": "artist", "affinity": "TEXT" }, { "fieldPath": "duration", "columnName": "duration", "affinity": "INTEGER" }, { "fieldPath": "track", "columnName": "track", "affinity": "INTEGER" }, { "fieldPath": "disc", "columnName": "disc", "affinity": "INTEGER" }, { "fieldPath": "starred", "columnName": "starred", "affinity": "INTEGER" }, { "fieldPath": "genre", "columnName": "genre", "affinity": "TEXT" } ], "primaryKey": { "autoGenerate": false, "columnNames": [ "sourceId", "id" ] }, "indices": [ { "name": "index_songs_sourceId_albumId", "unique": false, "columnNames": [ "sourceId", "albumId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_songs_sourceId_albumId` ON `${TABLE_NAME}` (`sourceId`, `albumId`)" }, { "name": "index_songs_sourceId_artistId", "unique": false, "columnNames": [ "sourceId", "artistId" ], "orders": [], "createSql": "CREATE INDEX IF NOT EXISTS `index_songs_sourceId_artistId` ON `${TABLE_NAME}` (`sourceId`, `artistId`)" } ], "foreignKeys": [ { "table": "sources", "onDelete": "CASCADE", "onUpdate": "NO ACTION", "columns": [ "sourceId" ], "referencedColumns": [ "id" ] } ] }, { "tableName": "search_index", "createSql": "CREATE VIRTUAL TABLE IF NOT EXISTS `${TABLE_NAME}` USING FTS5(`sourceId` UNINDEXED, `type` UNINDEXED, `itemId` UNINDEXED, `title`, tokenize=`trigram`)", "fields": [ { "fieldPath": "sourceId", "columnName": "sourceId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "type", "columnName": "type", "affinity": "TEXT", "notNull": true }, { "fieldPath": "itemId", "columnName": "itemId", "affinity": "TEXT", "notNull": true }, { "fieldPath": "title", "columnName": "title", "affinity": "TEXT", "notNull": true } ], "primaryKey": { "autoGenerate": true, "columnNames": [ "rowid" ] }, "ftsVersion": "FTS5", "ftsOptions": { "tokenizer": "trigram", "tokenizerArgs": [], "contentTable": "", "languageIdColumnName": "", "matchInfo": "FTS4", "notIndexedColumns": [ "sourceId", "type", "itemId" ], "prefixSizes": [], "preferredOrder": "ASC", "contentRowId": "", "columnSize": true, "detail": "FULL" }, "contentSyncTriggers": [] } ], "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, '67a9c26297d65d76f54edc99ac9a7930')" ] } }