|
|
|
@ -1,9 +1,10 @@
|
|
|
|
|
(ns wanijo.infrastructure.repl
|
|
|
|
|
(:require [buddy.hashers :as hashers]
|
|
|
|
|
[neo4j-clj.core :as db]
|
|
|
|
|
[wanijo.infrastructure.neo4j :as neo4j]
|
|
|
|
|
[wanijo.main :as main]))
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery create-user
|
|
|
|
|
(db/defquery create-user
|
|
|
|
|
"CREATE (n:user)
|
|
|
|
|
SET n.ident = {ident}
|
|
|
|
|
SET n.pw = {pw}
|
|
|
|
@ -16,7 +17,7 @@
|
|
|
|
|
:pw (hashers/derive pw)
|
|
|
|
|
:uuid (neo4j/uuid)}))
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery merge-config
|
|
|
|
|
(db/defquery merge-config
|
|
|
|
|
"MERGE (c:dbconfig)
|
|
|
|
|
ON CREATE SET
|
|
|
|
|
c.installed_at = {now},
|
|
|
|
@ -26,38 +27,38 @@
|
|
|
|
|
c.last_migration = {now},
|
|
|
|
|
c.db_version = {version}")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery config
|
|
|
|
|
(db/defquery config
|
|
|
|
|
"MATCH (c:dbconfig) RETURN c")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-schema-uuid
|
|
|
|
|
(db/defquery ver-0-schema-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:schema)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-attribute-uuid
|
|
|
|
|
(db/defquery ver-0-attribute-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:attribute)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-instance-uuid
|
|
|
|
|
(db/defquery ver-0-instance-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:instance)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-property-uuid
|
|
|
|
|
(db/defquery ver-0-property-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:property)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-user-uuid
|
|
|
|
|
(db/defquery ver-0-user-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:user)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-0-link-uuid
|
|
|
|
|
(db/defquery ver-0-link-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:link)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-1-tag-name
|
|
|
|
|
(db/defquery ver-1-tag-name
|
|
|
|
|
"CREATE CONSTRAINT ON (n:tag)
|
|
|
|
|
ASSERT n.name IS UNIQUE")
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery ver-1-tag-uuid
|
|
|
|
|
(db/defquery ver-1-tag-uuid
|
|
|
|
|
"CREATE CONSTRAINT ON (n:tag)
|
|
|
|
|
ASSERT n.uuid IS UNIQUE")
|
|
|
|
|
|
|
|
|
@ -73,23 +74,9 @@
|
|
|
|
|
(neo4j/exec-query! ver-1-tag-name {})
|
|
|
|
|
(neo4j/exec-query! ver-1-tag-uuid {}))
|
|
|
|
|
|
|
|
|
|
(neo4j/defquery migrate-links
|
|
|
|
|
"MATCH (i1:instance)-[:link_from]-(l:link)-[:link_to]-(i2:instance),
|
|
|
|
|
(l)-[cb:created_by]->(:user)
|
|
|
|
|
MERGE (i1)-[newl:link]->(i2)
|
|
|
|
|
ON CREATE SET
|
|
|
|
|
newl.name = l.name,
|
|
|
|
|
newl.created_at = l.created_at,
|
|
|
|
|
newl.uuid = l.uuid
|
|
|
|
|
DELETE cb, lf, lt, l")
|
|
|
|
|
|
|
|
|
|
(defn init-version-2 []
|
|
|
|
|
(neo4j/exec-query! migrate-links {}))
|
|
|
|
|
|
|
|
|
|
(def migrations
|
|
|
|
|
[init-version-0
|
|
|
|
|
init-version-1
|
|
|
|
|
init-version-2])
|
|
|
|
|
init-version-1])
|
|
|
|
|
|
|
|
|
|
(defn run-migrations! []
|
|
|
|
|
(neo4j/exec-query! merge-config {:now (neo4j/now-str)
|
|
|
|
|