Le 7/31/13 5:42 PM, Richard Sand a écrit : > Totally understood. GIT may be a better solution for the client side, if you > wanted to plug in an existing embedded client. I think what the server needs > is a two stage process - one for committing the schema changes, the other > for telling the server to "activate" a specific schema (head, some branch > tag, etc). The server would evaluate/preprocess the new schema, and if the > server doesn't like the schema provided, e.g. due to a data integrity issue, > it would just fail then.
The initial idea was to have ApacheDS embedded into Studio, with a versionned DIT. When you are happy with your schema, then you export it to your remote server. Currently, ApacheDS is already embedded in studio, so the first step is already done. We also have a mechanism that mimic the versionning feature in ApacheDS : we use it for tests (when we run a test, we store a revision, and we keep a reverted operatio of each modification applied on the server since this revision. When the test is over - eitehr successfully or not -, we simply apply all the reverted operation back to the revision. The database is then back to what it was before the test started. This is extremely conventient because you don't have to take care of any cleanup : the test does it for you. So in some way, we have the revision mechanism in place, except that it's in memory. Of course, we have interfaces for all the classes in charge of this mechanism, and we could perfectly implement another way to handle the revert operation, based on a file containing the modifications, allowing anyone to revert back to any revision, even if the server has been shut down. But still, this is a work to be done. Last, not least, the new backend is versionned, so it would be possible to retain some revision, and rollback to an old revision without having to implement any other mechanism. It's not yet completed, but this is an option for the future (and it will run on the server). -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com