How to Migrate Bold BI Storage from File Share (NFS) to Azure Blob Storage
This article explains how to migrate Bold BI storage from File Share to Azure Blob Storage. Migrating to Azure Blob improves scalability, reliability, and storage performance.
Prerequisites: Access to the Kubernetes cluster, Azure Portal, and Azure Storage Account credentials
Step 1: Take Backup of app_data from Kubernetes
Create a backup of the Bold BI app_data folder from the Kubernetes pod.
1. Get the running pods "kubectl get pods -n bold-services"
2. Check the size of the app_data folder inside the pod using the following command and note it for later verification:
kubectl exec -n bold-services <id-web-pod> -- du -sh /application/app_data3. Open your terminal and navigate to the location where you want to store the backup: i.e. cd C:\Users\<username>\Downloads\AppData_Backup
Run the following command to copy:
kubectl cp -n bold-services <id-web-pod>:/application/app_data ./app_dataNote: Ensure that you take a backup of the app_data folder and store it safely. During migration, dashboards will be converted to .sydj, the config.json file will be modified, and folder structures will be reorganized.
Create the following folder structure on your local machine to organize the files during the migration.
Step 2: Convert Dashboards to .SYDJ Format
Download and extract the SYDJConversion utility. Ensure .NET SDK 6.0 is available (use the provided link if needed)
Copy the backed-up app_data folder into the SYDJConversion directory and then Run the "SYDJConversion.exe" utility, as shown in the image below.
After conversion, dashboards will appear as .sydj files. These converted dashboards inside the following directory: app_data/bi/<tenant-id>/resources
Now copy all tenant folders from: SYDJConversion/app_data/bi/<tenant-id>
and move them to the Azure Blob Migration\dashboard server folder that was created earlier.
Step 3: Prepare DashboardDesigner Folder
Copy all the contents inside designtimecache into the following DashboardDesigner folder that was already created:
Step 4: Update the config.json Using Migration Utility
Download and extract the MigrateToBlob utility. Ensure .NET SDK 8.0 is available (use the provided link if needed)
Note: This migration utility supports PostgreSQL meta db only.
Copy the backed-up app_data folder into the inside the MigrateToBlob folder.
Parameter Explanation
.\UpdateBlobValuesUtility.exe -azureblobstoragecontainername 'testblob' -azureblobstorageuri 'https://test123.blob.core.windows.net' -connectiontype 'https' -accountname 'test123' -accesskey '8yrKrNASt61ezEw=='The values in the command are examples. Replace them with your Azure Storage Account details.
| Parameter | Description | Example |
|---|---|---|
-azureblobstoragecontainername | Your Blob container name | boldbi |
-azureblobstorageuri | Your Blob storage URL | https://test123.blob.core.windows.net |
-accountname | Your Azure Storage account name | test123 |
-accesskey | Your Storage account access key | wIIx8SpHS/... |
Copy the Account Name and Access Key from Azure Portal → Storage Account → Security + Networking → Access keys.
Create a Container (If Not Available)
Create a Blob container (e.g., boldbi) by navigating to Azure Storage Account → Data Storage → Containers → Add Container, then save it.
Example Final Command
After replacing the values, the command will look like this:
.\UpdateBlobValuesUtility.exe -azureblobstoragecontainername 'boldbi' -azureblobstorageuri 'https://sablobnew216643.blob.core.windows.net' -connectiontype 'https' -accountname 'sablobnew216643' -accesskey 'wIIx8SpHS/*****************/br+AStbc60OQ=='Navigate to the MigrateToBlob directory and run the command in CMD.
This command will update the config.json file and Meta Database
Step 5: Prepare boldservices Folder
Copy the configuration folder from MigrateToBlob\app_data\configuration to Azure Blob Migration\boldservices.
Step 6: Ensure Final Folder Structure
Ensure the folders in the following structure before uploading them to Azure Blob:
Azure Blob Migration (Back up Folder name)
│
├ boldservices
│ └ app_data
│ └ configuration
│
├ dashboard server
│ └ all tenant folders
│
└ DashboardDesigner
└ DashboardDesigner
└ designtimecache files & foldersStep 7: Upload Folders to Azure Blob
Upload the prepared folders into the container.
Expected structure:
boldbi (Container Name)
│
├ boldservices
│ └ app_data
│ └ configuration
│
├ dashboard server
│ └ all tenant folders
│
└ DashboardDesigner
└ DashboardDesigner
└ designtimecache files & foldersStep 8: Update the config.json in Kubernetes
Replace the existing config.json with the updated config.json file from Azure Blob Migration\boldservices\configuration.
Verify the change:
cat config.json | grep StorageTypeExpected output: "StorageType": 1 and also ensure the value is updated under the StorageSettings property.
Step 9: Restart Bold BI Pods
Restart the deployments: kubectl rollout restart deployment -n bold-services
Verify pod status: kubectl get pods -n bold-services
After restarting the pods, open Bold BI and verify that dashboards load correctly, datasources work properly, and the Dashboard Designer functions as expected.
Related Links