mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
@appinteractive thanks for pointing out `split`. You just saved me some days of work to refactor the import statements to use CSV instead of JSON files. @Tirokk when I enter `:schema` in Neo4J web UI, I see the following: ``` :schema Indexes ON :Badge(id) ONLINE ON :Category(id) ONLINE ON :Comment(id) ONLINE ON :Post(id) ONLINE ON :Tag(id) ONLINE ON :User(id) ONLINE No constraints ``` So I temporarily removed the unique constraints on `slug` and added plain indices on `id` for all relevant node types. We cannot omit the `:Label` unfortunately, neo4j does not allow this. So I had to add all indices for all known node labels instead. With indices the import finishes in: ``` Time elapsed: 351 seconds ``` 🎉 @appinteractive when I keep the unique indices on slug, I get an error during import that a node with label `:User` and slug `tobias` already exists. Ie. we have unqiue constraint violations in our production data. @mattwr18 @ulfgebhardt @ogerly I started the application on my machine on the production data and it turns out that the index page http://localhost:3000/ takes way to long. Visiting my profile page at http://localhost:3000/profile/5b1693daf850c11207fa6109/robert-schafer is fine, though. Even pagination works. When I visit a post page with not too many comments, the application is fast enough, too: http://localhost:3000/post/5bbf49ebc428ea001c7ca89c/neues-video-format-human-connection-tech-news
21 lines
645 B
SQL
21 lines
645 B
SQL
CALL apoc.load.json('file:/tmp/mongo-export/splits/current-chunk.json') YIELD value as user
|
|
MERGE(u:User {id: user._id["$oid"]})
|
|
ON CREATE SET
|
|
u.name = user.name,
|
|
u.slug = user.slug,
|
|
u.email = user.email,
|
|
u.password = user.password,
|
|
u.avatar = user.avatar,
|
|
u.coverImg = user.coverImg,
|
|
u.wasInvited = user.wasInvited,
|
|
u.role = toLower(user.role),
|
|
u.createdAt = user.createdAt.`$date`,
|
|
u.updatedAt = user.updatedAt.`$date`,
|
|
u.deleted = user.deletedAt IS NOT NULL,
|
|
u.disabled = false
|
|
WITH u, user, user.badgeIds AS badgeIds
|
|
UNWIND badgeIds AS badgeId
|
|
MATCH (b:Badge {id: badgeId})
|
|
MERGE (b)-[:REWARDED]->(u)
|
|
;
|