...
If Deltashell opens an old project it creates a session for that version of the DB. After that all objects are migrated to a new session with the current configuration. Then when the project is saved the database is in a new format.
How does DS know which mapping to use?
Each project database contains a table with plugin version information with which the db was written. The version is the same as used for the plugin assembly. This could look like this:
Component | Release Version |
---|---|
Framework | 1.0.0 |
Plugin1 | 0.6.0 |
Plugin2 | 1.1.0 |
Now development continues and breaking changes occur. This could look like this :