If you are a private brainCloud licensee, you may have access to two or more brainCloud instances. This article will instruct you on how to move and/or update apps between them.
To migrate an app from one brainCloud instance to another, you need to perform the following basic steps:
- Export the app configuration data, files and system entities from the source brainCloud instance
- Create a new app in the target brainCloud instance
- Import the previously exported data into the target app
STEP 1: Export the app data from the source app.
- Navigate to Design | Core App Info | Admin Tools page, Configuration Data section. Click [Export] button, It will be saved as a .bcconfig file to the default download folder of your local hard drive.
- Export the files (either Legacy Custom Files or Global Files) for the source app via the appropriate section of the portal. Legacy custom files are exported via the [Export] button in the Custom Files section of the Design | Core App Info | Admin Tools page. The archive will be saved as a .bcfiles file to the default download folder of your local hard drive.
- Global Files via the action menu of the Design | Custom Config | Global Files screen, by clicking [Export Archive] option. The archive will be saved as a .bcglob file to the default download folder of your local hard drive.
- To export System Entities, navigate to Monitoring | Global Monitoring | Global Entities page, from the Bulk Actions dropdown menu, export these data to your local storage. (Either a Raw Json or Simplified Json object file.)
STEP 2: Import the source data to the target app
- Create a new app from your target environment by clicking [+New App] button from Team | Manage | Apps page, fill in a name for the App Name field from the pop-up window, click Save.
- Navigate to Design | Core App Info | Admin Tools page, click Import from Configuration Data section on this page. Uncheck all the overwrite options and click [Select Configuration File (.bcconfig)] and attach the file you just downloaded from step 1. Click Upload.
- If the exported app has a peer service app associated with it, you need to import the peer service app first, then configure the target app to associate with this peer service app, then do the configuration data import)
- If the exported app has a parent service app associated with it, you need to import the parent service app first, then configure the target app to associate with this parent service app, then do the configuration data import
- Import legacy custom files via the Custom Files section on the same page if your source app has legacy global files.
- Import Global Files via the action menu of the Design | Custom Config | Global Files screen, by clicking [Import Archive] option, adding the .bcglob file you exported from step 1, and importing it. You will find all the global files and the folders will be imported with the same structure in the source app.
- Import system entities from the Monitoring | Global Monitoring | Global Entities page using the Bulk Export / Import features.
- Navigate to the Team | Manage | Apps page from your target environment, find your target app and publish to Live with the corresponding subscription plan you chose.
STEP 3: Check the data and configs of the target app
You might notice, the custom entity collections have a config option called Migrate, if you set it to true, the custom entities will be migrated when you import the configuration data from the source app to the target app, otherwise, you will only get the collection without any entities. Comparing the result between the source and target app below.
- The source app has two entity types, one is set the Migrate to true, the other is set to false, each of these types has two entities.
- Check the target app custom entities from Monitoring | Global Monitoring | Custom Entities page, you will find that only the one which its Migrate is set to true will have its entities migrated.
Many integration settings will vary between development and production versions of an app. After initially deploying an app, you will want to check the following screens to ensure that the settings are correct:
- Design | Core App Info | Application IDs - confirm that all the platform settings are correct
- Design | Cloud Code | My Servers - your hosted server settings will likely vary between development vs. production instances of your app
- Design | Custom Config | Global Properties - you may have some properties whose settings are specific to your app instance
- Design | Integrations | Manage Integrations - some of your integration settings may be specific to your app instance
- Design | Integrations | Peer Services - some peer service settings may be specific to your app instance
- Design | Marketplace | Products - some IAP and pricing settings may be specific to your app instance (i.e. if the dev vs. prod versions of your app use different apple app ids, your IAP ids will be different too)
- Design | Multiplayer | Lobbies - the lobby/matchmaking settings of your app may vary between development and production instances of your app
- Design | Notifications | Settings - you may have different push notification settings/certs between development and production versions of your app
- Design | Messaging | Chat / Chat Channels / Messaging / Presence - confirm that all the setting from these pages are correct