Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental Janusgraph schema updates #1588

Open
7 tasks
sbespalov opened this issue Nov 11, 2019 · 0 comments · Fixed by strongbox/strongbox-db#27
Open
7 tasks

Incremental Janusgraph schema updates #1588

sbespalov opened this issue Nov 11, 2019 · 0 comments · Fixed by strongbox/strongbox-db#27
Assignees
Labels
in progress work is in progress

Comments

@sbespalov
Copy link
Member

sbespalov commented Nov 11, 2019

Task Description

We need to be able to manage Janusgraph schema with incremental versioned updates. This should be done with help of JanusGraphManagement which provide Java API to manage schema. We already have a org.carlspring.strongbox.janusgraph.graph.schema.StrongboxSchema class that creates initial schema and within this task we should make it work using step-by-step change-sets. The change-sets will be stored as a constant list of StrongboxSchema class.

Tasks

The following tasks will need to be carried out:

  • Implement an interface which will represent single change-set, it should have the apply(JanusGraphManagement jgm) method and following attributes:
    • name (some meanable change-set name)
    • version (Semantic Versioning format)
  • Add DatabaseSchema vertex type which will represent current schema
  • Add ChangeSet vertex type which will represent applied change-sets
  • Add DatabaseSchema#ChangeSet edge type which will represent one-to-many relation between DatabaseSchema and ChangeSet (it should also have the applyDate property)
  • Implement the logic which will create DatabaseSchema vertex if it not exists
  • Implement the logic which will apply change-sets delta from current DatabaseSchema version.
  • implement StrongboxSchema.dropSchema method for test purpose which will be executed on Spring Application context shutdown.

Task Relationships

This task:

Useful Links

Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress work is in progress
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants