30.json 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485
  1. {
  2. "formatVersion": 1,
  3. "database": {
  4. "version": 30,
  5. "identityHash": "d9c8ef97ef4ffe0c1dbd57ca74bc4de4",
  6. "entities": [
  7. {
  8. "tableName": "books",
  9. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`bookUrl` TEXT NOT NULL, `tocUrl` TEXT NOT NULL, `origin` TEXT NOT NULL, `originName` TEXT NOT NULL, `name` TEXT NOT NULL, `author` TEXT NOT NULL, `kind` TEXT, `customTag` TEXT, `coverUrl` TEXT, `customCoverUrl` TEXT, `intro` TEXT, `customIntro` TEXT, `charset` TEXT, `type` INTEGER NOT NULL, `group` INTEGER NOT NULL, `latestChapterTitle` TEXT, `latestChapterTime` INTEGER NOT NULL, `lastCheckTime` INTEGER NOT NULL, `lastCheckCount` INTEGER NOT NULL, `totalChapterNum` INTEGER NOT NULL, `durChapterTitle` TEXT, `durChapterIndex` INTEGER NOT NULL, `durChapterPos` INTEGER NOT NULL, `durChapterTime` INTEGER NOT NULL, `wordCount` TEXT, `canUpdate` INTEGER NOT NULL, `order` INTEGER NOT NULL, `originOrder` INTEGER NOT NULL, `variable` TEXT, `readConfig` TEXT, PRIMARY KEY(`bookUrl`))",
  10. "fields": [
  11. {
  12. "fieldPath": "bookUrl",
  13. "columnName": "bookUrl",
  14. "affinity": "TEXT",
  15. "notNull": true
  16. },
  17. {
  18. "fieldPath": "tocUrl",
  19. "columnName": "tocUrl",
  20. "affinity": "TEXT",
  21. "notNull": true
  22. },
  23. {
  24. "fieldPath": "origin",
  25. "columnName": "origin",
  26. "affinity": "TEXT",
  27. "notNull": true
  28. },
  29. {
  30. "fieldPath": "originName",
  31. "columnName": "originName",
  32. "affinity": "TEXT",
  33. "notNull": true
  34. },
  35. {
  36. "fieldPath": "name",
  37. "columnName": "name",
  38. "affinity": "TEXT",
  39. "notNull": true
  40. },
  41. {
  42. "fieldPath": "author",
  43. "columnName": "author",
  44. "affinity": "TEXT",
  45. "notNull": true
  46. },
  47. {
  48. "fieldPath": "kind",
  49. "columnName": "kind",
  50. "affinity": "TEXT",
  51. "notNull": false
  52. },
  53. {
  54. "fieldPath": "customTag",
  55. "columnName": "customTag",
  56. "affinity": "TEXT",
  57. "notNull": false
  58. },
  59. {
  60. "fieldPath": "coverUrl",
  61. "columnName": "coverUrl",
  62. "affinity": "TEXT",
  63. "notNull": false
  64. },
  65. {
  66. "fieldPath": "customCoverUrl",
  67. "columnName": "customCoverUrl",
  68. "affinity": "TEXT",
  69. "notNull": false
  70. },
  71. {
  72. "fieldPath": "intro",
  73. "columnName": "intro",
  74. "affinity": "TEXT",
  75. "notNull": false
  76. },
  77. {
  78. "fieldPath": "customIntro",
  79. "columnName": "customIntro",
  80. "affinity": "TEXT",
  81. "notNull": false
  82. },
  83. {
  84. "fieldPath": "charset",
  85. "columnName": "charset",
  86. "affinity": "TEXT",
  87. "notNull": false
  88. },
  89. {
  90. "fieldPath": "type",
  91. "columnName": "type",
  92. "affinity": "INTEGER",
  93. "notNull": true
  94. },
  95. {
  96. "fieldPath": "group",
  97. "columnName": "group",
  98. "affinity": "INTEGER",
  99. "notNull": true
  100. },
  101. {
  102. "fieldPath": "latestChapterTitle",
  103. "columnName": "latestChapterTitle",
  104. "affinity": "TEXT",
  105. "notNull": false
  106. },
  107. {
  108. "fieldPath": "latestChapterTime",
  109. "columnName": "latestChapterTime",
  110. "affinity": "INTEGER",
  111. "notNull": true
  112. },
  113. {
  114. "fieldPath": "lastCheckTime",
  115. "columnName": "lastCheckTime",
  116. "affinity": "INTEGER",
  117. "notNull": true
  118. },
  119. {
  120. "fieldPath": "lastCheckCount",
  121. "columnName": "lastCheckCount",
  122. "affinity": "INTEGER",
  123. "notNull": true
  124. },
  125. {
  126. "fieldPath": "totalChapterNum",
  127. "columnName": "totalChapterNum",
  128. "affinity": "INTEGER",
  129. "notNull": true
  130. },
  131. {
  132. "fieldPath": "durChapterTitle",
  133. "columnName": "durChapterTitle",
  134. "affinity": "TEXT",
  135. "notNull": false
  136. },
  137. {
  138. "fieldPath": "durChapterIndex",
  139. "columnName": "durChapterIndex",
  140. "affinity": "INTEGER",
  141. "notNull": true
  142. },
  143. {
  144. "fieldPath": "durChapterPos",
  145. "columnName": "durChapterPos",
  146. "affinity": "INTEGER",
  147. "notNull": true
  148. },
  149. {
  150. "fieldPath": "durChapterTime",
  151. "columnName": "durChapterTime",
  152. "affinity": "INTEGER",
  153. "notNull": true
  154. },
  155. {
  156. "fieldPath": "wordCount",
  157. "columnName": "wordCount",
  158. "affinity": "TEXT",
  159. "notNull": false
  160. },
  161. {
  162. "fieldPath": "canUpdate",
  163. "columnName": "canUpdate",
  164. "affinity": "INTEGER",
  165. "notNull": true
  166. },
  167. {
  168. "fieldPath": "order",
  169. "columnName": "order",
  170. "affinity": "INTEGER",
  171. "notNull": true
  172. },
  173. {
  174. "fieldPath": "originOrder",
  175. "columnName": "originOrder",
  176. "affinity": "INTEGER",
  177. "notNull": true
  178. },
  179. {
  180. "fieldPath": "variable",
  181. "columnName": "variable",
  182. "affinity": "TEXT",
  183. "notNull": false
  184. },
  185. {
  186. "fieldPath": "readConfig",
  187. "columnName": "readConfig",
  188. "affinity": "TEXT",
  189. "notNull": false
  190. }
  191. ],
  192. "primaryKey": {
  193. "columnNames": [
  194. "bookUrl"
  195. ],
  196. "autoGenerate": false
  197. },
  198. "indices": [
  199. {
  200. "name": "index_books_name_author",
  201. "unique": true,
  202. "columnNames": [
  203. "name",
  204. "author"
  205. ],
  206. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_books_name_author` ON `${TABLE_NAME}` (`name`, `author`)"
  207. }
  208. ],
  209. "foreignKeys": []
  210. },
  211. {
  212. "tableName": "book_groups",
  213. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`groupId` INTEGER NOT NULL, `groupName` TEXT NOT NULL, `order` INTEGER NOT NULL, `show` INTEGER NOT NULL, PRIMARY KEY(`groupId`))",
  214. "fields": [
  215. {
  216. "fieldPath": "groupId",
  217. "columnName": "groupId",
  218. "affinity": "INTEGER",
  219. "notNull": true
  220. },
  221. {
  222. "fieldPath": "groupName",
  223. "columnName": "groupName",
  224. "affinity": "TEXT",
  225. "notNull": true
  226. },
  227. {
  228. "fieldPath": "order",
  229. "columnName": "order",
  230. "affinity": "INTEGER",
  231. "notNull": true
  232. },
  233. {
  234. "fieldPath": "show",
  235. "columnName": "show",
  236. "affinity": "INTEGER",
  237. "notNull": true
  238. }
  239. ],
  240. "primaryKey": {
  241. "columnNames": [
  242. "groupId"
  243. ],
  244. "autoGenerate": false
  245. },
  246. "indices": [],
  247. "foreignKeys": []
  248. },
  249. {
  250. "tableName": "book_sources",
  251. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`bookSourceName` TEXT NOT NULL, `bookSourceGroup` TEXT, `bookSourceUrl` TEXT NOT NULL, `bookSourceType` INTEGER NOT NULL, `bookUrlPattern` TEXT, `customOrder` INTEGER NOT NULL, `enabled` INTEGER NOT NULL, `enabledExplore` INTEGER NOT NULL, `header` TEXT, `loginUrl` TEXT, `bookSourceComment` TEXT, `lastUpdateTime` INTEGER NOT NULL, `weight` INTEGER NOT NULL, `exploreUrl` TEXT, `ruleExplore` TEXT, `searchUrl` TEXT, `ruleSearch` TEXT, `ruleBookInfo` TEXT, `ruleToc` TEXT, `ruleContent` TEXT, PRIMARY KEY(`bookSourceUrl`))",
  252. "fields": [
  253. {
  254. "fieldPath": "bookSourceName",
  255. "columnName": "bookSourceName",
  256. "affinity": "TEXT",
  257. "notNull": true
  258. },
  259. {
  260. "fieldPath": "bookSourceGroup",
  261. "columnName": "bookSourceGroup",
  262. "affinity": "TEXT",
  263. "notNull": false
  264. },
  265. {
  266. "fieldPath": "bookSourceUrl",
  267. "columnName": "bookSourceUrl",
  268. "affinity": "TEXT",
  269. "notNull": true
  270. },
  271. {
  272. "fieldPath": "bookSourceType",
  273. "columnName": "bookSourceType",
  274. "affinity": "INTEGER",
  275. "notNull": true
  276. },
  277. {
  278. "fieldPath": "bookUrlPattern",
  279. "columnName": "bookUrlPattern",
  280. "affinity": "TEXT",
  281. "notNull": false
  282. },
  283. {
  284. "fieldPath": "customOrder",
  285. "columnName": "customOrder",
  286. "affinity": "INTEGER",
  287. "notNull": true
  288. },
  289. {
  290. "fieldPath": "enabled",
  291. "columnName": "enabled",
  292. "affinity": "INTEGER",
  293. "notNull": true
  294. },
  295. {
  296. "fieldPath": "enabledExplore",
  297. "columnName": "enabledExplore",
  298. "affinity": "INTEGER",
  299. "notNull": true
  300. },
  301. {
  302. "fieldPath": "header",
  303. "columnName": "header",
  304. "affinity": "TEXT",
  305. "notNull": false
  306. },
  307. {
  308. "fieldPath": "loginUrl",
  309. "columnName": "loginUrl",
  310. "affinity": "TEXT",
  311. "notNull": false
  312. },
  313. {
  314. "fieldPath": "bookSourceComment",
  315. "columnName": "bookSourceComment",
  316. "affinity": "TEXT",
  317. "notNull": false
  318. },
  319. {
  320. "fieldPath": "lastUpdateTime",
  321. "columnName": "lastUpdateTime",
  322. "affinity": "INTEGER",
  323. "notNull": true
  324. },
  325. {
  326. "fieldPath": "weight",
  327. "columnName": "weight",
  328. "affinity": "INTEGER",
  329. "notNull": true
  330. },
  331. {
  332. "fieldPath": "exploreUrl",
  333. "columnName": "exploreUrl",
  334. "affinity": "TEXT",
  335. "notNull": false
  336. },
  337. {
  338. "fieldPath": "ruleExplore",
  339. "columnName": "ruleExplore",
  340. "affinity": "TEXT",
  341. "notNull": false
  342. },
  343. {
  344. "fieldPath": "searchUrl",
  345. "columnName": "searchUrl",
  346. "affinity": "TEXT",
  347. "notNull": false
  348. },
  349. {
  350. "fieldPath": "ruleSearch",
  351. "columnName": "ruleSearch",
  352. "affinity": "TEXT",
  353. "notNull": false
  354. },
  355. {
  356. "fieldPath": "ruleBookInfo",
  357. "columnName": "ruleBookInfo",
  358. "affinity": "TEXT",
  359. "notNull": false
  360. },
  361. {
  362. "fieldPath": "ruleToc",
  363. "columnName": "ruleToc",
  364. "affinity": "TEXT",
  365. "notNull": false
  366. },
  367. {
  368. "fieldPath": "ruleContent",
  369. "columnName": "ruleContent",
  370. "affinity": "TEXT",
  371. "notNull": false
  372. }
  373. ],
  374. "primaryKey": {
  375. "columnNames": [
  376. "bookSourceUrl"
  377. ],
  378. "autoGenerate": false
  379. },
  380. "indices": [
  381. {
  382. "name": "index_book_sources_bookSourceUrl",
  383. "unique": false,
  384. "columnNames": [
  385. "bookSourceUrl"
  386. ],
  387. "createSql": "CREATE INDEX IF NOT EXISTS `index_book_sources_bookSourceUrl` ON `${TABLE_NAME}` (`bookSourceUrl`)"
  388. }
  389. ],
  390. "foreignKeys": []
  391. },
  392. {
  393. "tableName": "chapters",
  394. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`url` TEXT NOT NULL, `title` TEXT NOT NULL, `baseUrl` TEXT NOT NULL, `bookUrl` TEXT NOT NULL, `index` INTEGER NOT NULL, `resourceUrl` TEXT, `tag` TEXT, `start` INTEGER, `end` INTEGER, `startFragmentId` TEXT, `endFragmentId` TEXT, `variable` TEXT, PRIMARY KEY(`url`, `bookUrl`), FOREIGN KEY(`bookUrl`) REFERENCES `books`(`bookUrl`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  395. "fields": [
  396. {
  397. "fieldPath": "url",
  398. "columnName": "url",
  399. "affinity": "TEXT",
  400. "notNull": true
  401. },
  402. {
  403. "fieldPath": "title",
  404. "columnName": "title",
  405. "affinity": "TEXT",
  406. "notNull": true
  407. },
  408. {
  409. "fieldPath": "baseUrl",
  410. "columnName": "baseUrl",
  411. "affinity": "TEXT",
  412. "notNull": true
  413. },
  414. {
  415. "fieldPath": "bookUrl",
  416. "columnName": "bookUrl",
  417. "affinity": "TEXT",
  418. "notNull": true
  419. },
  420. {
  421. "fieldPath": "index",
  422. "columnName": "index",
  423. "affinity": "INTEGER",
  424. "notNull": true
  425. },
  426. {
  427. "fieldPath": "resourceUrl",
  428. "columnName": "resourceUrl",
  429. "affinity": "TEXT",
  430. "notNull": false
  431. },
  432. {
  433. "fieldPath": "tag",
  434. "columnName": "tag",
  435. "affinity": "TEXT",
  436. "notNull": false
  437. },
  438. {
  439. "fieldPath": "start",
  440. "columnName": "start",
  441. "affinity": "INTEGER",
  442. "notNull": false
  443. },
  444. {
  445. "fieldPath": "end",
  446. "columnName": "end",
  447. "affinity": "INTEGER",
  448. "notNull": false
  449. },
  450. {
  451. "fieldPath": "startFragmentId",
  452. "columnName": "startFragmentId",
  453. "affinity": "TEXT",
  454. "notNull": false
  455. },
  456. {
  457. "fieldPath": "endFragmentId",
  458. "columnName": "endFragmentId",
  459. "affinity": "TEXT",
  460. "notNull": false
  461. },
  462. {
  463. "fieldPath": "variable",
  464. "columnName": "variable",
  465. "affinity": "TEXT",
  466. "notNull": false
  467. }
  468. ],
  469. "primaryKey": {
  470. "columnNames": [
  471. "url",
  472. "bookUrl"
  473. ],
  474. "autoGenerate": false
  475. },
  476. "indices": [
  477. {
  478. "name": "index_chapters_bookUrl",
  479. "unique": false,
  480. "columnNames": [
  481. "bookUrl"
  482. ],
  483. "createSql": "CREATE INDEX IF NOT EXISTS `index_chapters_bookUrl` ON `${TABLE_NAME}` (`bookUrl`)"
  484. },
  485. {
  486. "name": "index_chapters_bookUrl_index",
  487. "unique": true,
  488. "columnNames": [
  489. "bookUrl",
  490. "index"
  491. ],
  492. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_chapters_bookUrl_index` ON `${TABLE_NAME}` (`bookUrl`, `index`)"
  493. }
  494. ],
  495. "foreignKeys": [
  496. {
  497. "table": "books",
  498. "onDelete": "CASCADE",
  499. "onUpdate": "NO ACTION",
  500. "columns": [
  501. "bookUrl"
  502. ],
  503. "referencedColumns": [
  504. "bookUrl"
  505. ]
  506. }
  507. ]
  508. },
  509. {
  510. "tableName": "replace_rules",
  511. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `group` TEXT, `pattern` TEXT NOT NULL, `replacement` TEXT NOT NULL, `scope` TEXT, `isEnabled` INTEGER NOT NULL, `isRegex` INTEGER NOT NULL, `sortOrder` INTEGER NOT NULL)",
  512. "fields": [
  513. {
  514. "fieldPath": "id",
  515. "columnName": "id",
  516. "affinity": "INTEGER",
  517. "notNull": true
  518. },
  519. {
  520. "fieldPath": "name",
  521. "columnName": "name",
  522. "affinity": "TEXT",
  523. "notNull": true
  524. },
  525. {
  526. "fieldPath": "group",
  527. "columnName": "group",
  528. "affinity": "TEXT",
  529. "notNull": false
  530. },
  531. {
  532. "fieldPath": "pattern",
  533. "columnName": "pattern",
  534. "affinity": "TEXT",
  535. "notNull": true
  536. },
  537. {
  538. "fieldPath": "replacement",
  539. "columnName": "replacement",
  540. "affinity": "TEXT",
  541. "notNull": true
  542. },
  543. {
  544. "fieldPath": "scope",
  545. "columnName": "scope",
  546. "affinity": "TEXT",
  547. "notNull": false
  548. },
  549. {
  550. "fieldPath": "isEnabled",
  551. "columnName": "isEnabled",
  552. "affinity": "INTEGER",
  553. "notNull": true
  554. },
  555. {
  556. "fieldPath": "isRegex",
  557. "columnName": "isRegex",
  558. "affinity": "INTEGER",
  559. "notNull": true
  560. },
  561. {
  562. "fieldPath": "order",
  563. "columnName": "sortOrder",
  564. "affinity": "INTEGER",
  565. "notNull": true
  566. }
  567. ],
  568. "primaryKey": {
  569. "columnNames": [
  570. "id"
  571. ],
  572. "autoGenerate": true
  573. },
  574. "indices": [
  575. {
  576. "name": "index_replace_rules_id",
  577. "unique": false,
  578. "columnNames": [
  579. "id"
  580. ],
  581. "createSql": "CREATE INDEX IF NOT EXISTS `index_replace_rules_id` ON `${TABLE_NAME}` (`id`)"
  582. }
  583. ],
  584. "foreignKeys": []
  585. },
  586. {
  587. "tableName": "searchBooks",
  588. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`bookUrl` TEXT NOT NULL, `origin` TEXT NOT NULL, `originName` TEXT NOT NULL, `type` INTEGER NOT NULL, `name` TEXT NOT NULL, `author` TEXT NOT NULL, `kind` TEXT, `coverUrl` TEXT, `intro` TEXT, `wordCount` TEXT, `latestChapterTitle` TEXT, `tocUrl` TEXT NOT NULL, `time` INTEGER NOT NULL, `variable` TEXT, `originOrder` INTEGER NOT NULL, PRIMARY KEY(`bookUrl`), FOREIGN KEY(`origin`) REFERENCES `book_sources`(`bookSourceUrl`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  589. "fields": [
  590. {
  591. "fieldPath": "bookUrl",
  592. "columnName": "bookUrl",
  593. "affinity": "TEXT",
  594. "notNull": true
  595. },
  596. {
  597. "fieldPath": "origin",
  598. "columnName": "origin",
  599. "affinity": "TEXT",
  600. "notNull": true
  601. },
  602. {
  603. "fieldPath": "originName",
  604. "columnName": "originName",
  605. "affinity": "TEXT",
  606. "notNull": true
  607. },
  608. {
  609. "fieldPath": "type",
  610. "columnName": "type",
  611. "affinity": "INTEGER",
  612. "notNull": true
  613. },
  614. {
  615. "fieldPath": "name",
  616. "columnName": "name",
  617. "affinity": "TEXT",
  618. "notNull": true
  619. },
  620. {
  621. "fieldPath": "author",
  622. "columnName": "author",
  623. "affinity": "TEXT",
  624. "notNull": true
  625. },
  626. {
  627. "fieldPath": "kind",
  628. "columnName": "kind",
  629. "affinity": "TEXT",
  630. "notNull": false
  631. },
  632. {
  633. "fieldPath": "coverUrl",
  634. "columnName": "coverUrl",
  635. "affinity": "TEXT",
  636. "notNull": false
  637. },
  638. {
  639. "fieldPath": "intro",
  640. "columnName": "intro",
  641. "affinity": "TEXT",
  642. "notNull": false
  643. },
  644. {
  645. "fieldPath": "wordCount",
  646. "columnName": "wordCount",
  647. "affinity": "TEXT",
  648. "notNull": false
  649. },
  650. {
  651. "fieldPath": "latestChapterTitle",
  652. "columnName": "latestChapterTitle",
  653. "affinity": "TEXT",
  654. "notNull": false
  655. },
  656. {
  657. "fieldPath": "tocUrl",
  658. "columnName": "tocUrl",
  659. "affinity": "TEXT",
  660. "notNull": true
  661. },
  662. {
  663. "fieldPath": "time",
  664. "columnName": "time",
  665. "affinity": "INTEGER",
  666. "notNull": true
  667. },
  668. {
  669. "fieldPath": "variable",
  670. "columnName": "variable",
  671. "affinity": "TEXT",
  672. "notNull": false
  673. },
  674. {
  675. "fieldPath": "originOrder",
  676. "columnName": "originOrder",
  677. "affinity": "INTEGER",
  678. "notNull": true
  679. }
  680. ],
  681. "primaryKey": {
  682. "columnNames": [
  683. "bookUrl"
  684. ],
  685. "autoGenerate": false
  686. },
  687. "indices": [
  688. {
  689. "name": "index_searchBooks_bookUrl",
  690. "unique": true,
  691. "columnNames": [
  692. "bookUrl"
  693. ],
  694. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_searchBooks_bookUrl` ON `${TABLE_NAME}` (`bookUrl`)"
  695. },
  696. {
  697. "name": "index_searchBooks_origin",
  698. "unique": false,
  699. "columnNames": [
  700. "origin"
  701. ],
  702. "createSql": "CREATE INDEX IF NOT EXISTS `index_searchBooks_origin` ON `${TABLE_NAME}` (`origin`)"
  703. }
  704. ],
  705. "foreignKeys": [
  706. {
  707. "table": "book_sources",
  708. "onDelete": "CASCADE",
  709. "onUpdate": "NO ACTION",
  710. "columns": [
  711. "origin"
  712. ],
  713. "referencedColumns": [
  714. "bookSourceUrl"
  715. ]
  716. }
  717. ]
  718. },
  719. {
  720. "tableName": "search_keywords",
  721. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`word` TEXT NOT NULL, `usage` INTEGER NOT NULL, `lastUseTime` INTEGER NOT NULL, PRIMARY KEY(`word`))",
  722. "fields": [
  723. {
  724. "fieldPath": "word",
  725. "columnName": "word",
  726. "affinity": "TEXT",
  727. "notNull": true
  728. },
  729. {
  730. "fieldPath": "usage",
  731. "columnName": "usage",
  732. "affinity": "INTEGER",
  733. "notNull": true
  734. },
  735. {
  736. "fieldPath": "lastUseTime",
  737. "columnName": "lastUseTime",
  738. "affinity": "INTEGER",
  739. "notNull": true
  740. }
  741. ],
  742. "primaryKey": {
  743. "columnNames": [
  744. "word"
  745. ],
  746. "autoGenerate": false
  747. },
  748. "indices": [
  749. {
  750. "name": "index_search_keywords_word",
  751. "unique": true,
  752. "columnNames": [
  753. "word"
  754. ],
  755. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_search_keywords_word` ON `${TABLE_NAME}` (`word`)"
  756. }
  757. ],
  758. "foreignKeys": []
  759. },
  760. {
  761. "tableName": "cookies",
  762. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`url` TEXT NOT NULL, `cookie` TEXT NOT NULL, PRIMARY KEY(`url`))",
  763. "fields": [
  764. {
  765. "fieldPath": "url",
  766. "columnName": "url",
  767. "affinity": "TEXT",
  768. "notNull": true
  769. },
  770. {
  771. "fieldPath": "cookie",
  772. "columnName": "cookie",
  773. "affinity": "TEXT",
  774. "notNull": true
  775. }
  776. ],
  777. "primaryKey": {
  778. "columnNames": [
  779. "url"
  780. ],
  781. "autoGenerate": false
  782. },
  783. "indices": [
  784. {
  785. "name": "index_cookies_url",
  786. "unique": true,
  787. "columnNames": [
  788. "url"
  789. ],
  790. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_cookies_url` ON `${TABLE_NAME}` (`url`)"
  791. }
  792. ],
  793. "foreignKeys": []
  794. },
  795. {
  796. "tableName": "rssSources",
  797. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourceUrl` TEXT NOT NULL, `sourceName` TEXT NOT NULL, `sourceIcon` TEXT NOT NULL, `sourceGroup` TEXT, `sourceComment` TEXT, `enabled` INTEGER NOT NULL, `sortUrl` TEXT, `singleUrl` INTEGER NOT NULL, `articleStyle` INTEGER NOT NULL, `ruleArticles` TEXT, `ruleNextPage` TEXT, `ruleTitle` TEXT, `rulePubDate` TEXT, `ruleDescription` TEXT, `ruleImage` TEXT, `ruleLink` TEXT, `ruleContent` TEXT, `style` TEXT, `header` TEXT, `enableJs` INTEGER NOT NULL, `loadWithBaseUrl` INTEGER NOT NULL, `customOrder` INTEGER NOT NULL, PRIMARY KEY(`sourceUrl`))",
  798. "fields": [
  799. {
  800. "fieldPath": "sourceUrl",
  801. "columnName": "sourceUrl",
  802. "affinity": "TEXT",
  803. "notNull": true
  804. },
  805. {
  806. "fieldPath": "sourceName",
  807. "columnName": "sourceName",
  808. "affinity": "TEXT",
  809. "notNull": true
  810. },
  811. {
  812. "fieldPath": "sourceIcon",
  813. "columnName": "sourceIcon",
  814. "affinity": "TEXT",
  815. "notNull": true
  816. },
  817. {
  818. "fieldPath": "sourceGroup",
  819. "columnName": "sourceGroup",
  820. "affinity": "TEXT",
  821. "notNull": false
  822. },
  823. {
  824. "fieldPath": "sourceComment",
  825. "columnName": "sourceComment",
  826. "affinity": "TEXT",
  827. "notNull": false
  828. },
  829. {
  830. "fieldPath": "enabled",
  831. "columnName": "enabled",
  832. "affinity": "INTEGER",
  833. "notNull": true
  834. },
  835. {
  836. "fieldPath": "sortUrl",
  837. "columnName": "sortUrl",
  838. "affinity": "TEXT",
  839. "notNull": false
  840. },
  841. {
  842. "fieldPath": "singleUrl",
  843. "columnName": "singleUrl",
  844. "affinity": "INTEGER",
  845. "notNull": true
  846. },
  847. {
  848. "fieldPath": "articleStyle",
  849. "columnName": "articleStyle",
  850. "affinity": "INTEGER",
  851. "notNull": true
  852. },
  853. {
  854. "fieldPath": "ruleArticles",
  855. "columnName": "ruleArticles",
  856. "affinity": "TEXT",
  857. "notNull": false
  858. },
  859. {
  860. "fieldPath": "ruleNextPage",
  861. "columnName": "ruleNextPage",
  862. "affinity": "TEXT",
  863. "notNull": false
  864. },
  865. {
  866. "fieldPath": "ruleTitle",
  867. "columnName": "ruleTitle",
  868. "affinity": "TEXT",
  869. "notNull": false
  870. },
  871. {
  872. "fieldPath": "rulePubDate",
  873. "columnName": "rulePubDate",
  874. "affinity": "TEXT",
  875. "notNull": false
  876. },
  877. {
  878. "fieldPath": "ruleDescription",
  879. "columnName": "ruleDescription",
  880. "affinity": "TEXT",
  881. "notNull": false
  882. },
  883. {
  884. "fieldPath": "ruleImage",
  885. "columnName": "ruleImage",
  886. "affinity": "TEXT",
  887. "notNull": false
  888. },
  889. {
  890. "fieldPath": "ruleLink",
  891. "columnName": "ruleLink",
  892. "affinity": "TEXT",
  893. "notNull": false
  894. },
  895. {
  896. "fieldPath": "ruleContent",
  897. "columnName": "ruleContent",
  898. "affinity": "TEXT",
  899. "notNull": false
  900. },
  901. {
  902. "fieldPath": "style",
  903. "columnName": "style",
  904. "affinity": "TEXT",
  905. "notNull": false
  906. },
  907. {
  908. "fieldPath": "header",
  909. "columnName": "header",
  910. "affinity": "TEXT",
  911. "notNull": false
  912. },
  913. {
  914. "fieldPath": "enableJs",
  915. "columnName": "enableJs",
  916. "affinity": "INTEGER",
  917. "notNull": true
  918. },
  919. {
  920. "fieldPath": "loadWithBaseUrl",
  921. "columnName": "loadWithBaseUrl",
  922. "affinity": "INTEGER",
  923. "notNull": true
  924. },
  925. {
  926. "fieldPath": "customOrder",
  927. "columnName": "customOrder",
  928. "affinity": "INTEGER",
  929. "notNull": true
  930. }
  931. ],
  932. "primaryKey": {
  933. "columnNames": [
  934. "sourceUrl"
  935. ],
  936. "autoGenerate": false
  937. },
  938. "indices": [
  939. {
  940. "name": "index_rssSources_sourceUrl",
  941. "unique": false,
  942. "columnNames": [
  943. "sourceUrl"
  944. ],
  945. "createSql": "CREATE INDEX IF NOT EXISTS `index_rssSources_sourceUrl` ON `${TABLE_NAME}` (`sourceUrl`)"
  946. }
  947. ],
  948. "foreignKeys": []
  949. },
  950. {
  951. "tableName": "bookmarks",
  952. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`time` INTEGER NOT NULL, `bookUrl` TEXT NOT NULL, `bookName` TEXT NOT NULL, `bookAuthor` TEXT NOT NULL, `chapterIndex` INTEGER NOT NULL, `chapterPos` INTEGER NOT NULL, `chapterName` TEXT NOT NULL, `bookText` TEXT NOT NULL, `content` TEXT NOT NULL, PRIMARY KEY(`time`))",
  953. "fields": [
  954. {
  955. "fieldPath": "time",
  956. "columnName": "time",
  957. "affinity": "INTEGER",
  958. "notNull": true
  959. },
  960. {
  961. "fieldPath": "bookUrl",
  962. "columnName": "bookUrl",
  963. "affinity": "TEXT",
  964. "notNull": true
  965. },
  966. {
  967. "fieldPath": "bookName",
  968. "columnName": "bookName",
  969. "affinity": "TEXT",
  970. "notNull": true
  971. },
  972. {
  973. "fieldPath": "bookAuthor",
  974. "columnName": "bookAuthor",
  975. "affinity": "TEXT",
  976. "notNull": true
  977. },
  978. {
  979. "fieldPath": "chapterIndex",
  980. "columnName": "chapterIndex",
  981. "affinity": "INTEGER",
  982. "notNull": true
  983. },
  984. {
  985. "fieldPath": "chapterPos",
  986. "columnName": "chapterPos",
  987. "affinity": "INTEGER",
  988. "notNull": true
  989. },
  990. {
  991. "fieldPath": "chapterName",
  992. "columnName": "chapterName",
  993. "affinity": "TEXT",
  994. "notNull": true
  995. },
  996. {
  997. "fieldPath": "bookText",
  998. "columnName": "bookText",
  999. "affinity": "TEXT",
  1000. "notNull": true
  1001. },
  1002. {
  1003. "fieldPath": "content",
  1004. "columnName": "content",
  1005. "affinity": "TEXT",
  1006. "notNull": true
  1007. }
  1008. ],
  1009. "primaryKey": {
  1010. "columnNames": [
  1011. "time"
  1012. ],
  1013. "autoGenerate": false
  1014. },
  1015. "indices": [
  1016. {
  1017. "name": "index_bookmarks_time",
  1018. "unique": true,
  1019. "columnNames": [
  1020. "time"
  1021. ],
  1022. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_bookmarks_time` ON `${TABLE_NAME}` (`time`)"
  1023. }
  1024. ],
  1025. "foreignKeys": []
  1026. },
  1027. {
  1028. "tableName": "rssArticles",
  1029. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`origin` TEXT NOT NULL, `sort` TEXT NOT NULL, `title` TEXT NOT NULL, `order` INTEGER NOT NULL, `link` TEXT NOT NULL, `pubDate` TEXT, `description` TEXT, `content` TEXT, `image` TEXT, `read` INTEGER NOT NULL, `variable` TEXT, PRIMARY KEY(`origin`, `link`))",
  1030. "fields": [
  1031. {
  1032. "fieldPath": "origin",
  1033. "columnName": "origin",
  1034. "affinity": "TEXT",
  1035. "notNull": true
  1036. },
  1037. {
  1038. "fieldPath": "sort",
  1039. "columnName": "sort",
  1040. "affinity": "TEXT",
  1041. "notNull": true
  1042. },
  1043. {
  1044. "fieldPath": "title",
  1045. "columnName": "title",
  1046. "affinity": "TEXT",
  1047. "notNull": true
  1048. },
  1049. {
  1050. "fieldPath": "order",
  1051. "columnName": "order",
  1052. "affinity": "INTEGER",
  1053. "notNull": true
  1054. },
  1055. {
  1056. "fieldPath": "link",
  1057. "columnName": "link",
  1058. "affinity": "TEXT",
  1059. "notNull": true
  1060. },
  1061. {
  1062. "fieldPath": "pubDate",
  1063. "columnName": "pubDate",
  1064. "affinity": "TEXT",
  1065. "notNull": false
  1066. },
  1067. {
  1068. "fieldPath": "description",
  1069. "columnName": "description",
  1070. "affinity": "TEXT",
  1071. "notNull": false
  1072. },
  1073. {
  1074. "fieldPath": "content",
  1075. "columnName": "content",
  1076. "affinity": "TEXT",
  1077. "notNull": false
  1078. },
  1079. {
  1080. "fieldPath": "image",
  1081. "columnName": "image",
  1082. "affinity": "TEXT",
  1083. "notNull": false
  1084. },
  1085. {
  1086. "fieldPath": "read",
  1087. "columnName": "read",
  1088. "affinity": "INTEGER",
  1089. "notNull": true
  1090. },
  1091. {
  1092. "fieldPath": "variable",
  1093. "columnName": "variable",
  1094. "affinity": "TEXT",
  1095. "notNull": false
  1096. }
  1097. ],
  1098. "primaryKey": {
  1099. "columnNames": [
  1100. "origin",
  1101. "link"
  1102. ],
  1103. "autoGenerate": false
  1104. },
  1105. "indices": [],
  1106. "foreignKeys": []
  1107. },
  1108. {
  1109. "tableName": "rssReadRecords",
  1110. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`record` TEXT NOT NULL, `read` INTEGER NOT NULL, PRIMARY KEY(`record`))",
  1111. "fields": [
  1112. {
  1113. "fieldPath": "record",
  1114. "columnName": "record",
  1115. "affinity": "TEXT",
  1116. "notNull": true
  1117. },
  1118. {
  1119. "fieldPath": "read",
  1120. "columnName": "read",
  1121. "affinity": "INTEGER",
  1122. "notNull": true
  1123. }
  1124. ],
  1125. "primaryKey": {
  1126. "columnNames": [
  1127. "record"
  1128. ],
  1129. "autoGenerate": false
  1130. },
  1131. "indices": [],
  1132. "foreignKeys": []
  1133. },
  1134. {
  1135. "tableName": "rssStars",
  1136. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`origin` TEXT NOT NULL, `sort` TEXT NOT NULL, `title` TEXT NOT NULL, `starTime` INTEGER NOT NULL, `link` TEXT NOT NULL, `pubDate` TEXT, `description` TEXT, `content` TEXT, `image` TEXT, `variable` TEXT, PRIMARY KEY(`origin`, `link`))",
  1137. "fields": [
  1138. {
  1139. "fieldPath": "origin",
  1140. "columnName": "origin",
  1141. "affinity": "TEXT",
  1142. "notNull": true
  1143. },
  1144. {
  1145. "fieldPath": "sort",
  1146. "columnName": "sort",
  1147. "affinity": "TEXT",
  1148. "notNull": true
  1149. },
  1150. {
  1151. "fieldPath": "title",
  1152. "columnName": "title",
  1153. "affinity": "TEXT",
  1154. "notNull": true
  1155. },
  1156. {
  1157. "fieldPath": "starTime",
  1158. "columnName": "starTime",
  1159. "affinity": "INTEGER",
  1160. "notNull": true
  1161. },
  1162. {
  1163. "fieldPath": "link",
  1164. "columnName": "link",
  1165. "affinity": "TEXT",
  1166. "notNull": true
  1167. },
  1168. {
  1169. "fieldPath": "pubDate",
  1170. "columnName": "pubDate",
  1171. "affinity": "TEXT",
  1172. "notNull": false
  1173. },
  1174. {
  1175. "fieldPath": "description",
  1176. "columnName": "description",
  1177. "affinity": "TEXT",
  1178. "notNull": false
  1179. },
  1180. {
  1181. "fieldPath": "content",
  1182. "columnName": "content",
  1183. "affinity": "TEXT",
  1184. "notNull": false
  1185. },
  1186. {
  1187. "fieldPath": "image",
  1188. "columnName": "image",
  1189. "affinity": "TEXT",
  1190. "notNull": false
  1191. },
  1192. {
  1193. "fieldPath": "variable",
  1194. "columnName": "variable",
  1195. "affinity": "TEXT",
  1196. "notNull": false
  1197. }
  1198. ],
  1199. "primaryKey": {
  1200. "columnNames": [
  1201. "origin",
  1202. "link"
  1203. ],
  1204. "autoGenerate": false
  1205. },
  1206. "indices": [],
  1207. "foreignKeys": []
  1208. },
  1209. {
  1210. "tableName": "txtTocRules",
  1211. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `name` TEXT NOT NULL, `rule` TEXT NOT NULL, `serialNumber` INTEGER NOT NULL, `enable` INTEGER NOT NULL, PRIMARY KEY(`id`))",
  1212. "fields": [
  1213. {
  1214. "fieldPath": "id",
  1215. "columnName": "id",
  1216. "affinity": "INTEGER",
  1217. "notNull": true
  1218. },
  1219. {
  1220. "fieldPath": "name",
  1221. "columnName": "name",
  1222. "affinity": "TEXT",
  1223. "notNull": true
  1224. },
  1225. {
  1226. "fieldPath": "rule",
  1227. "columnName": "rule",
  1228. "affinity": "TEXT",
  1229. "notNull": true
  1230. },
  1231. {
  1232. "fieldPath": "serialNumber",
  1233. "columnName": "serialNumber",
  1234. "affinity": "INTEGER",
  1235. "notNull": true
  1236. },
  1237. {
  1238. "fieldPath": "enable",
  1239. "columnName": "enable",
  1240. "affinity": "INTEGER",
  1241. "notNull": true
  1242. }
  1243. ],
  1244. "primaryKey": {
  1245. "columnNames": [
  1246. "id"
  1247. ],
  1248. "autoGenerate": false
  1249. },
  1250. "indices": [],
  1251. "foreignKeys": []
  1252. },
  1253. {
  1254. "tableName": "readRecord",
  1255. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`deviceId` TEXT NOT NULL, `bookName` TEXT NOT NULL, `readTime` INTEGER NOT NULL, PRIMARY KEY(`deviceId`, `bookName`))",
  1256. "fields": [
  1257. {
  1258. "fieldPath": "deviceId",
  1259. "columnName": "deviceId",
  1260. "affinity": "TEXT",
  1261. "notNull": true
  1262. },
  1263. {
  1264. "fieldPath": "bookName",
  1265. "columnName": "bookName",
  1266. "affinity": "TEXT",
  1267. "notNull": true
  1268. },
  1269. {
  1270. "fieldPath": "readTime",
  1271. "columnName": "readTime",
  1272. "affinity": "INTEGER",
  1273. "notNull": true
  1274. }
  1275. ],
  1276. "primaryKey": {
  1277. "columnNames": [
  1278. "deviceId",
  1279. "bookName"
  1280. ],
  1281. "autoGenerate": false
  1282. },
  1283. "indices": [],
  1284. "foreignKeys": []
  1285. },
  1286. {
  1287. "tableName": "httpTTS",
  1288. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `name` TEXT NOT NULL, `url` TEXT NOT NULL, PRIMARY KEY(`id`))",
  1289. "fields": [
  1290. {
  1291. "fieldPath": "id",
  1292. "columnName": "id",
  1293. "affinity": "INTEGER",
  1294. "notNull": true
  1295. },
  1296. {
  1297. "fieldPath": "name",
  1298. "columnName": "name",
  1299. "affinity": "TEXT",
  1300. "notNull": true
  1301. },
  1302. {
  1303. "fieldPath": "url",
  1304. "columnName": "url",
  1305. "affinity": "TEXT",
  1306. "notNull": true
  1307. }
  1308. ],
  1309. "primaryKey": {
  1310. "columnNames": [
  1311. "id"
  1312. ],
  1313. "autoGenerate": false
  1314. },
  1315. "indices": [],
  1316. "foreignKeys": []
  1317. },
  1318. {
  1319. "tableName": "caches",
  1320. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `value` TEXT, `deadline` INTEGER NOT NULL, PRIMARY KEY(`key`))",
  1321. "fields": [
  1322. {
  1323. "fieldPath": "key",
  1324. "columnName": "key",
  1325. "affinity": "TEXT",
  1326. "notNull": true
  1327. },
  1328. {
  1329. "fieldPath": "value",
  1330. "columnName": "value",
  1331. "affinity": "TEXT",
  1332. "notNull": false
  1333. },
  1334. {
  1335. "fieldPath": "deadline",
  1336. "columnName": "deadline",
  1337. "affinity": "INTEGER",
  1338. "notNull": true
  1339. }
  1340. ],
  1341. "primaryKey": {
  1342. "columnNames": [
  1343. "key"
  1344. ],
  1345. "autoGenerate": false
  1346. },
  1347. "indices": [
  1348. {
  1349. "name": "index_caches_key",
  1350. "unique": true,
  1351. "columnNames": [
  1352. "key"
  1353. ],
  1354. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_caches_key` ON `${TABLE_NAME}` (`key`)"
  1355. }
  1356. ],
  1357. "foreignKeys": []
  1358. },
  1359. {
  1360. "tableName": "ruleSubs",
  1361. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `name` TEXT NOT NULL, `url` TEXT NOT NULL, `type` INTEGER NOT NULL, `customOrder` INTEGER NOT NULL, `autoUpdate` INTEGER NOT NULL, `update` INTEGER NOT NULL, PRIMARY KEY(`id`))",
  1362. "fields": [
  1363. {
  1364. "fieldPath": "id",
  1365. "columnName": "id",
  1366. "affinity": "INTEGER",
  1367. "notNull": true
  1368. },
  1369. {
  1370. "fieldPath": "name",
  1371. "columnName": "name",
  1372. "affinity": "TEXT",
  1373. "notNull": true
  1374. },
  1375. {
  1376. "fieldPath": "url",
  1377. "columnName": "url",
  1378. "affinity": "TEXT",
  1379. "notNull": true
  1380. },
  1381. {
  1382. "fieldPath": "type",
  1383. "columnName": "type",
  1384. "affinity": "INTEGER",
  1385. "notNull": true
  1386. },
  1387. {
  1388. "fieldPath": "customOrder",
  1389. "columnName": "customOrder",
  1390. "affinity": "INTEGER",
  1391. "notNull": true
  1392. },
  1393. {
  1394. "fieldPath": "autoUpdate",
  1395. "columnName": "autoUpdate",
  1396. "affinity": "INTEGER",
  1397. "notNull": true
  1398. },
  1399. {
  1400. "fieldPath": "update",
  1401. "columnName": "update",
  1402. "affinity": "INTEGER",
  1403. "notNull": true
  1404. }
  1405. ],
  1406. "primaryKey": {
  1407. "columnNames": [
  1408. "id"
  1409. ],
  1410. "autoGenerate": false
  1411. },
  1412. "indices": [],
  1413. "foreignKeys": []
  1414. },
  1415. {
  1416. "tableName": "epubChapters",
  1417. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`bookUrl` TEXT NOT NULL, `href` TEXT NOT NULL, `parentHref` TEXT, PRIMARY KEY(`bookUrl`, `href`), FOREIGN KEY(`bookUrl`) REFERENCES `books`(`bookUrl`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  1418. "fields": [
  1419. {
  1420. "fieldPath": "bookUrl",
  1421. "columnName": "bookUrl",
  1422. "affinity": "TEXT",
  1423. "notNull": true
  1424. },
  1425. {
  1426. "fieldPath": "href",
  1427. "columnName": "href",
  1428. "affinity": "TEXT",
  1429. "notNull": true
  1430. },
  1431. {
  1432. "fieldPath": "parentHref",
  1433. "columnName": "parentHref",
  1434. "affinity": "TEXT",
  1435. "notNull": false
  1436. }
  1437. ],
  1438. "primaryKey": {
  1439. "columnNames": [
  1440. "bookUrl",
  1441. "href"
  1442. ],
  1443. "autoGenerate": false
  1444. },
  1445. "indices": [
  1446. {
  1447. "name": "index_epubChapters_bookUrl",
  1448. "unique": false,
  1449. "columnNames": [
  1450. "bookUrl"
  1451. ],
  1452. "createSql": "CREATE INDEX IF NOT EXISTS `index_epubChapters_bookUrl` ON `${TABLE_NAME}` (`bookUrl`)"
  1453. },
  1454. {
  1455. "name": "index_epubChapters_bookUrl_href",
  1456. "unique": true,
  1457. "columnNames": [
  1458. "bookUrl",
  1459. "href"
  1460. ],
  1461. "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_epubChapters_bookUrl_href` ON `${TABLE_NAME}` (`bookUrl`, `href`)"
  1462. }
  1463. ],
  1464. "foreignKeys": [
  1465. {
  1466. "table": "books",
  1467. "onDelete": "CASCADE",
  1468. "onUpdate": "NO ACTION",
  1469. "columns": [
  1470. "bookUrl"
  1471. ],
  1472. "referencedColumns": [
  1473. "bookUrl"
  1474. ]
  1475. }
  1476. ]
  1477. }
  1478. ],
  1479. "views": [],
  1480. "setupQueries": [
  1481. "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
  1482. "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd9c8ef97ef4ffe0c1dbd57ca74bc4de4')"
  1483. ]
  1484. }
  1485. }