diff --git a/deps/db/src/logseq/db/sqlite/db.cljs b/deps/db/src/logseq/db/sqlite/db.cljs index 99215bf2b..92b6166c1 100644 --- a/deps/db/src/logseq/db/sqlite/db.cljs +++ b/deps/db/src/logseq/db/sqlite/db.cljs @@ -3,7 +3,8 @@ (:require ["path" :as node-path] ["better-sqlite3" :as sqlite3] [clojure.string :as string] - [cljs-bean.core :as bean])) + [cljs-bean.core :as bean] + [logseq.db.sqlite.util :as sqlite-util])) ;; use built-in blocks to represent db schema, config, custom css, custom js, etc. @@ -22,7 +23,7 @@ (defn sanitize-db-name [db-name] (-> db-name - (string/replace "logseq_db_" "") + (string/replace sqlite-util/db-version-prefix "") (string/replace "/" "_") (string/replace "\\" "_") (string/replace ":" "_"))) ;; windows diff --git a/deps/db/src/logseq/db/sqlite/util.cljs b/deps/db/src/logseq/db/sqlite/util.cljs index 039c26729..28f6f6a7d 100644 --- a/deps/db/src/logseq/db/sqlite/util.cljs +++ b/deps/db/src/logseq/db/sqlite/util.cljs @@ -31,6 +31,8 @@ (contains? (set (:block/type block)) "macro") 7 :else 5)) +(defonce db-version-prefix "logseq_db_") + (defn time-ms "Copy of util/time-ms. Too basic to couple this to main app" [] diff --git a/deps/publishing/src/logseq/publishing/html.cljs b/deps/publishing/src/logseq/publishing/html.cljs index b95a33279..b0af98709 100644 --- a/deps/publishing/src/logseq/publishing/html.cljs +++ b/deps/publishing/src/logseq/publishing/html.cljs @@ -5,7 +5,8 @@ necessary db filtering" [goog.string :as gstring] [goog.string.format] [datascript.transit :as dt] - [logseq.publishing.db :as db])) + [logseq.publishing.db :as db] + [logseq.db.sqlite.util :as sqlite-util])) ;; Copied from hiccup but tweaked for publish usage ;; Any changes here should also be made in frontend.publishing/unescape-html @@ -142,7 +143,7 @@ generated index.html string and assets used by the html" asset-filenames (remove nil? asset-filenames') db-str (dt/write-transit-str db) - repo-name (if db-graph? "logseq_db_local" "local") + repo-name (if db-graph? (str sqlite-util/db-version-prefix "local") "local") ;; The repo-name is used by the client and thus determines whether ;; it's a db graph or not state (assoc app-state diff --git a/src/electron/electron/handler.cljs b/src/electron/electron/handler.cljs index 41a791ef7..23c1fd42c 100644 --- a/src/electron/electron/handler.cljs +++ b/src/electron/electron/handler.cljs @@ -245,7 +245,7 @@ (->> (common-graph/read-directories dir) (remove (fn [s] (= s db/unlinked-graphs-dir))) (map graph-name->path) - (map (fn [s] (str "logseq_db_" s)))))) + (map (fn [s] (str sqlite-util/db-version-prefix s)))))) (defn- get-graphs [] @@ -255,13 +255,15 @@ ;; TODO support alias mechanism (defn get-graph-name - "Given a graph's name of string, returns the graph's fullname. - E.g., given `cat`, returns `logseq_local_/cat` - Returns `nil` if no such graph exists." + "Given a graph's name of string, returns the graph's fullname. For example, given + `cat`, returns `logseq_local_/cat` for a file graph and + `logseq_db_cat` for a db graph. Returns `nil` if no such graph exists." [graph-identifier] (->> (get-graphs) - (some #(when (string/ends-with? (utils/normalize-lc %) - (str "/" (utils/normalize-lc graph-identifier))) + (some #(when (or + (= (utils/normalize-lc %) (utils/normalize-lc (str sqlite-util/db-version-prefix graph-identifier))) + (string/ends-with? (utils/normalize-lc %) + (str "/" (utils/normalize-lc graph-identifier)))) %)))) (defmethod handle :getGraphs [_window [_]] diff --git a/src/main/frontend/components/repo.cljs b/src/main/frontend/components/repo.cljs index 96a2b51d3..1adc2104f 100644 --- a/src/main/frontend/components/repo.cljs +++ b/src/main/frontend/components/repo.cljs @@ -229,9 +229,7 @@ (let [remote? (:remote? (first (filter #(= current-repo (:url %)) repos))) repo-name (db/get-repo-name current-repo) short-repo-name (if repo-name - (if (config/db-based-graph? repo-name) - (string/replace-first repo-name config/db-version-prefix "") - (db/get-short-repo-name repo-name)) + (db/get-short-repo-name repo-name) "Select a Graph")] [:a.item.group.flex.items-center.p-2.text-sm.font-medium.rounded-md diff --git a/src/main/frontend/db/conn.cljs b/src/main/frontend/db/conn.cljs index 623ab643c..e107e1032 100644 --- a/src/main/frontend/db/conn.cljs +++ b/src/main/frontend/db/conn.cljs @@ -36,15 +36,18 @@ (defn get-short-repo-name "repo-name: from get-repo-name. Dir/Name => Name" [repo-name] - (cond - (util/electron?) - (text/get-file-basename repo-name) + (let [repo-name' (cond + (util/electron?) + (text/get-file-basename repo-name) - (mobile-util/native-platform?) - (gp-util/safe-decode-uri-component (text/get-file-basename repo-name)) + (mobile-util/native-platform?) + (gp-util/safe-decode-uri-component (text/get-file-basename repo-name)) - :else - repo-name)) + :else + repo-name)] + (if (config/db-based-graph? repo-name') + (string/replace-first repo-name' config/db-version-prefix "") + repo-name'))) (defn datascript-db [repo]