migrate.cljs 571 B

12345678910111213141516171819202122
  1. (ns ^:no-doc frontend.db.migrate
  2. (:require [datascript.core :as d]))
  3. (defn get-collapsed-blocks
  4. [db]
  5. (d/q
  6. '[:find [?b ...]
  7. :where
  8. [?b :block/properties ?properties]
  9. [(get ?properties :collapsed) ?collapsed]
  10. [(= true ?collapsed)]]
  11. db))
  12. (defn migrate
  13. [db]
  14. (when db
  15. (let [collapsed-blocks (get-collapsed-blocks db)]
  16. (if (seq collapsed-blocks)
  17. (let [tx-data (map (fn [id] {:db/id id
  18. :block/collapsed? true}) collapsed-blocks)]
  19. (d/db-with db tx-data))
  20. db))))