0 votes
125 views
Hello,

   Can anyone point me to the reference where the version control mechanism of OpenLCA CS for databases is explained in detail? My hunch is that it works like git, but a more technical description will be very helpful.

   Also, is there a similar mechanism for version control at local clients (i.e., database in a openlca client on your laptop)?

    Thank you!
in openLCA by (160 points)

1 Answer

0 votes
by (7.5k points)
In version 2.0 we switched to using git in the background. We did not publish a full technical documentation of the git structure yet, but it will follow. In summary:

OpenLCA acts as the git client, the Collaboration Server acts as a git server. OpenLCA acts as the workspace, when committing converts the data sets into the JSON-LD format and stores them in a local git repository. The model type and category are mapped to directories and for each dataset the json file will be stored as {ref_id}.json. E.g Actor 3e339f63-ae9e-5223-82b4-3c2acc029c64 in category 'Example/Category' will be stored as 'ACTOR/Example/Category/3e339f63-ae9e-5223-82b4-3c2acc029c64.json' in the repo. The Collaboration Server is added as a remote and data can be pushed.
by (160 points)
Thank you very much for the explanation, Sebastian. I look forward to the document.
The reason I'm asking this question is b/c I'm interested in the data exchange between openLCA and other frameworks (e.g., brigtway). You may be aware of the openlca2bw library which loads the processes from openLCA (via IPC or JSON import) and parses them into a brightway-compatible database. As you probably will think too, a version control mechanism is very important for such a procedure to reduce the redundancy (i.e., avoid the unnecessary importing of the unchanged processes). Implementing such a version control mechanism requires an understanding of the existing implementation in OpenLCA. Just a bit context of the question :)
...