VRCX
VRCX copied to clipboard
Add database merging feature
This pr fixes #784 and possibly more.
Additions
- Adds an additional CLI program that can merge old and new databases
- it merges all database tables when given an old and new database
- except specific user feed tables, where user input may be required
- it will optionally replace the new database's config with the old database's config
- it automatically creates a backup before merging, so data loss risk is minimal
Known Issues
- The warning for when user input is needed references a wiki page that doesn't currently exist
- The merging process was explicitly designed around a "new" and "old" database. Databases that operated at the same time using the same accounts will not merge as cleanly as an old database that was abandoned. This especially holds true for any feed tables (the feed tab in the app). Cleanly merging these tables on two databases that were created in parallel is simply impossible, and for that reason it is still not recommended to use VRCX on two machines at the same time.
Usage
The merger can be downloaded from the releases tab in my fork. The merger is like any command line tool. It cannot be used while VRCX is running. It takes the following args:
Arg | Required? | Description |
---|---|---|
-n, --new-db-path <new-db-path> |
Yes | The path of the new DB to merge the old onto. |
-o, --old-db-path <new-db-path> |
Yes | The path of the old DB to merge into the new. |
-d, -v, --debug, --verbose |
No | Add debug information to the output. [default: False ] |
--import-config |
No | Imports the config values from the old database. This will override the config in the new database. [default: False ] |
--version |
No | Show version information |
-?, -h, --help |
No | Show help and usage information |
Bugs
Please report bugs either through issues on this fork of VRCX (not the main repo) or contact loukylor
in the VRCX Discord.
Tasks:
- [x] Create functioning prerelease
- [ ] Create command line argument in VRCX so the merger can be used from VRCX
- [ ] Bug test and make sure there are no errors