There are multiple options, including one in which you would
- on the old server, archive all projects
- transfer the database from the old server to the new server
- on the new server, unarchive all projects
and in which you could preserve your project UIDs. This approach, however, is subject to some possible pitfalls. For example:
- you would need to transfer your database to the new master host in a valid way, either via restoration of a database backup or a valid copy of the database directory.
- for each individual project directory, you would need to ensure that the correct directory with unchanged contents is associated with the correct project during unarchiving. As of CryoSPARC v4.3.1, one might not be prevented from linking a project directory to the incorrect project, with database and project directory corruptions the likely outcome.
For these reasons, I recommend the following approach:
- Do not start the migration process before having understood the following steps in their entirety.
- Stop all CryoSPARC work on the old server/instance.
- Collect and preserve the output of the command
cryosparcm listusers
. - Collect and preserve the output of the command
cryosparcm cli "get_scheduler_targets()"
. - For each cluster lane, collect the output of the command
cryosparcm cluster dump
in separate directories. - Backup the database and store the backup in a safe place. In the best case, the backup will never be needed, but when was the last time everything went 100% according to plan?
- Detach each attached project from the old instance.
- Permanently shut down the old instance.
- After new absolute paths to software directories have been settled, install and start CryoSPARC master software on the new server. You may reuse your old license id provided the old instance is permanently shutdown.
- Similarly, install
cryosparc_worker
software. - Connect workers with reference to information collected earlier, potentially using edited (“
worker_bin_path
”) copies of thecluster_info.json
andcluster_script.sh
files dumped earlier. - Create users with reference to the users list collected earlier.
- Attach to the new instance project directories that were earlier detached from the old instance.
- If needed, adjust symlinks for each project. Alternatively, you could ensure that the absolute paths to “outside-of-project” files do not change, possibly (untested by myself) with the help of directory symbolic links.