Automatic Schema Evolution
Complete schema evolution is an unachievable goal, but schema evolution
With some limitations is possible. The limitations must be reasonable.
There are two solutions:
- Reading the old formatted data into memory and then the new application deals with the old data;
- Reading and converting the old format into the new one and then the new application deals with the new format.
The first approach was used in ZEBRA. ZEBRA can read any ZEBRA file and it is the problem of the application to work with the old format. This approach is completely impossible in C++. There is no way to create an old C++ object when the new one is declared.
So, we must somehow convert the old data into the new format.