Skip to content

Commit 2df1f14

Browse files
committed
fix: upsert db ident
1 parent aa2f963 commit 2df1f14

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Diff for: src/datascript/db.cljc

+8-1
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,13 @@
12991299
(defn get-schema [db]
13001300
(or (:schema db) {}))
13011301

1302+
(defn- get-e-schema
1303+
[schema e db-ident]
1304+
(let [result (schema e)]
1305+
(if (keyword? result)
1306+
(schema db-ident)
1307+
result)))
1308+
13021309
(defn update-schema [db ^Datom datom]
13031310
(let [schema (get-schema db)
13041311
e (.-e datom)
@@ -1308,7 +1315,7 @@
13081315
v-ident v]
13091316
(if (= a-ident :db/ident)
13101317
(-> db
1311-
(assoc-in [:schema v-ident] (merge (or (schema e) {}) (hash-map a-ident v-ident)))
1318+
(assoc-in [:schema v-ident] (merge (or (get-e-schema schema e v-ident) {}) (hash-map a-ident v-ident)))
13121319
(assoc-in [:schema e] v-ident))
13131320
(if-let [schema-entry (schema e)]
13141321
(if (schema schema-entry)

0 commit comments

Comments
 (0)