Snipe-IT Migration Tool #18321
jst-xtr
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
This tool is migrates all data from one Snipe-IT instance to another Snipe-IT instance while maintaining all relations and histories of the migrated data.
The result is a single installation containing all the data from both instances.
The problem
We had two independent Snipe-IT systems containing different data that we wanted to merge into one. We had already copied individual entries manually.
The difficulty layed in merging the data from the source system with the existing data in the destination system without corrupting the entries.
How we came to write this tool
First we experimented with the Snipe-IT API but we soon discovered that the API won't be sufficient enough for our requirements. With the API we would have lost the history of all migrated assets.
The alternative was performing the migration at the database level, where we had all the freedom we needed.
We chose Rust as the programming language because we wanted to make sure to minimize any runtime exceptions during the migration.
We included a TUI to provide a solid foundation for performing some tasks, like the patching feature, in a structured way.
The patching feature was required to migrate both instances cleanly together as in our case some users and assets had already been migrated manually.
One of the most significant challenges was ensuring that all relations between any assets migrate correctly. This was achieved by tracking which assets were migrated with which ID's in the source and destination systems.
Features
Try it out
We hope we can return something helpful to the Snipe-IT community with this project.
If you're curious have a look into the
README.mdof our repository.What could be improved
There are many improvements that can be made if someone wants to improve this tool:
Sadly we can't develop this tool any further so feel free to fork the repository or reach out to us and start coding.
Also, needles to say, always backup your data before trying out this tool as it comes with absolutely no warranty whatsoever.
Beta Was this translation helpful? Give feedback.
All reactions