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
feat(upgrade): Update repository on startup #1643
Conversation
@subotic I've commented out the GitHub CI |
We could add a new one based on the new feature, e.g., start the stack without api, load the v7 data, start the api and then check if it starts up. For most of the steps there is a makefile target. Loading V7 data and checking if knora-api is running could be done with curl. Would you like to try to do this? |
I don't really understand how the Docker containers fit together, but I can try. How do I check whether the API started without errors? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, thanks! Was a lot of work at the end. LGTM :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe improve the documentation a bit as mentioned before otherwise all good :-)
User story:
https://dasch.myjetbrains.com/youtrack/issue/DSP-165
upgrade
package intowebapi
, translating the Bash scripts into Scala, and incorporating the code intoApplicationActor
and the new classesRepositoryUpdater
andRepositoryUpdatePlan
.HttpTriplestoreConnector
.forbiddenResource
from the Knora system data. (That PR only removed theForbiddenResource
class, and GraphDB's consistency checker rejects the instance if the class doesn't exist anymore.)ApplicationActor
and its messages, rename the parameterskipLoadingOfOntologies
(i.e. don't load ontologies from the triplestore into the cache) toignoreRepository
. When Knora is started for a test, before the test data is loaded into the triplestore, this istrue
. We can also use it to skip checking whether we should update the repository.ApplicationMessages
andTriplestoreMessages
to distinguish clearly between the triplestore and the repository.Enumeration
forAppState
, so the compiler can check that all cases are matched (e.g. inHealthRoute
).webapi/scripts/wait-for-knora.sh
that polls Knora's/health
route until Knora has finished starting up.test-repository-update
that loads old repository test data into Knora, restarts Knora, and waits for the update to complete.