You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the ability to downgrade CouchDB versions
Currently, CouchDB on-disk header record allows appending new fields to it in
such a way that newer versions can upgrade themselves from the old versions
easily if the ?LATEST_DISK_VERSION stays the same. However, it was not possible
to perform a downgrade back to an old version in case something went wrong.
While in general it may not be safe to downgrade in such cases, it may be
possible for some features, so allow for such an option and make it
configurable.
This is essentially a counterpart to this feature:
```
% As long the changes are limited to new header fields (with inline
% defaults) added to the end of the record, then there is no need to increment
% the disk revision number.
```
The release notes of future releases may indicate which version are downgrade
safe. Then, to perform a downgrade users would enable the downgrade flag,
downgrade, and then reset it back to default (prohibit = true).
Implementation-wise, it's pretty basic, if the size of the new tuple is larger
than the old one, it's a downgrade. Then, only use as many tuple fields as
current (aka the "old" version) knows about, everything else is discarded.
0 commit comments