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
Since this project gets quite radical suggestions from the community, a data migration for settings between versions has becoma a necessity. I already started working on it at feat-settings-migrate branch. However, if anyone is interested in providing feedbacks, please feel free to jump in!
Why I Had To Do This:
Shortly, to keep everyone up to date and improve settings on the fly without trying not to break anyone. I have been stalking some forks and seen some old configurations. This feature will help users to easily migrate their configuration files to the latest version they are using. Some radical changes might still requires manual resolving, but the provided backups will help you prevent any data loss.
How it works:
Updates migration/migrations.json contents to define changes between the latest release and updated settings version. Currently done by a new system I had to introduce by using yarn generate-migrate-data, but will implement it into release workflow to do this automatically before releasing a new version.
Whenever client launches the app, it quickly checks the app version and settings version. It backs up the user settings (into backups folder for Docker and another local storage entry for web users) and starts migration process from user version towards latest version one by one.
Users without the version number in their configuration file will see a friendly warning to update their configuration manually to the latest, provided with the troubleshooting wiki page for more information. Also added a force migrate button, which should work for latest pre-migrate versions. For very old builds, manual resolving will be necessary.
If you are curious:
It uses deep-diff dependency to compare changes and create version entry, encapsulating each change with a format that can be used to update settings file, iterating through each version from users latest configuration version to latest release version one by one.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Since this project gets quite radical suggestions from the community, a data migration for settings between versions has becoma a necessity. I already started working on it at feat-settings-migrate branch. However, if anyone is interested in providing feedbacks, please feel free to jump in!
Why I Had To Do This:
Shortly, to keep everyone up to date and improve settings on the fly without trying not to break anyone. I have been stalking some forks and seen some old configurations. This feature will help users to easily migrate their configuration files to the latest version they are using. Some radical changes might still requires manual resolving, but the provided backups will help you prevent any data loss.
How it works:
migration/migrations.json
contents to define changes between the latest release and updated settings version. Currently done by a new system I had to introduce by usingyarn generate-migrate-data
, but will implement it into release workflow to do this automatically before releasing a new version.If you are curious:
It uses
deep-diff
dependency to compare changes and create version entry, encapsulating each change with a format that can be used to update settings file, iterating through each version from users latest configuration version to latest release version one by one.Please let me know what you think!
Beta Was this translation helpful? Give feedback.
All reactions