# Upgrades and Migrations

# Upgrades and Migrations

This page covers the procedures for upgrading Curiosity Workspace, migrating data between environments, and implementing backup and restore strategies.

# Upgrade Procedures

Before upgrading to a new version:

  1. Review Release Notes: Check for breaking changes or specific upgrade instructions.
  2. Backup Data: Ensure a full backup of the graph and configuration is available.
  3. Test in Staging: Perform the upgrade in a non-production environment first.

# General Steps

  • Pull the latest container image or download the new package.
  • Update the environment configuration if required.
  • Restart the service and monitor logs for successful migration scripts.

# Data Migration

Migrating data between workspaces (e.g., from Dev to Prod) involves:

  • Schema Export/Import: Ensuring the target workspace has matching node and edge schemas.
  • Data Export: Exporting nodes and edges using the API or export tools.
  • Data Ingestion: Using a connector or import task to load data into the target environment.

# Backup and Restore

A robust backup strategy is essential for disaster recovery.

  • Backup Frequency: Daily backups are recommended for most production environments.
  • What to Backup:
    • Graph database storage
    • Configuration files (h5.json, retype.yml, etc.)
    • Front-End Source code
    • Connectors Source code
    • Customizations and Workspace definition (exportable)
    • Environment variables and secrets
  • Restore Procedure:
    • Stop the workspace service.
    • Restore the data files to the designated storage volume.
    • Restart the service and verify data integrity.

# Environment Promotion

Moving from development to production should be a controlled process:

  • Use CI/CD pipelines to deploy configuration and code-based connectors.
  • Validate the environment state after releases.