Skip to content
This repository has been archived by the owner on Oct 15, 2023. It is now read-only.

Document schema loading #48

Open
FlorianHockmann opened this issue Nov 15, 2019 · 4 comments
Open

Document schema loading #48

FlorianHockmann opened this issue Nov 15, 2019 · 4 comments

Comments

@FlorianHockmann
Copy link
Member

The docker image now supports the execution of Groovy files on startup, but the docs currently only show an example to execute Gremlin traversals, e.g., to load initial data.
It's also possible to access the management API, for example to create a schema. This can be done with the remote Gremlin Console.
We should explain this use case as it's probably not clear to most new users.

See this thread on janusgraph-users for more information.

@FlorianHockmann
Copy link
Member Author

This could be made easier when we have a dedicated image for the console: #100.

@anders-rydbirk
Copy link

Hi @FlorianHockmann (and others),

I have a usecase where we would like to:

  • Setup schemas for known vertices
  • Be able to apply schema "migrations" if needs arise without reloading the graph
  • Have a server (in java) in front of janusgraph

Today, we manage this via a set of groovy scripts along with some logic how to apply these scripts in order, by keeping track of them using a separate graph. I.e. we keep state of the migrations in janusgraph itself, and on every deploy of our server, we check the current migration state and apply potential new migrations to the graph.

I would really love if we could manage this in a different way - either via init scripts (so we deploy the migrations together with Janusgraph) or via in-code that is a bit more typesafe than submitting file content as string. I'm unsure when the initscripts are executed (on every startup / only once for first startup if clean slate / new script present?)

Obviously, I might be missing something here :) But I think this feature really sounds interesting, if it was more clear how it can be used.

For context, I have been a bit inspired how C# / Entity Framework manages metadata state via code. I miss something similar, but I'm also in doubt if it's already possible to do.

@FlorianHockmann
Copy link
Member Author

Hi @anders-rydbirk,

interesting to hear about your use case, but that sounds quite advanced and out of scope for this specific issue here that just wants to document how a Groovy schema script can be executed with the Docker image.

Schema migrations are of course an interesting and important topic in general, but I'm not sure whether we will be able to handle them inside of JanusGraph directly any time soon since it most likely includes iterating over all vertices.
If you want to request that as a specific feature, then please create it in the main JanusGraph repository.

Regarding init scripts: If you are talking about scripts placed under /docker-entrypoint-initdb.d/ as described in the README, then they are executed every time the container starts.

If you have any further / follow-up questions or would like to discuss this some more, then please use one of our community channels, like Discord, the janusgraph-users mailing list or GitHub discussions.

@anders-rydbirk
Copy link

Hi @FlorianHockmann,

Yeah, I think that's also the realisation I arrived at. I ended up making our setup a bit less complicated, which ended up removing the need for having a bespoke graph to keep state of migrations.

Appreciate the details on scripts - and the care you put in this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants