Please contact us with a list of appId
to access the Early Access Program (EAP)
This is an experimental feature in EAP and is subject to change. In fact, we'd love to hear your feedback on it through the form at the bottom of this page.
Starting from CCMA 3.11.17 and JCMA 1.12.43 you can use the SQL data plane to migrate data into Forge SQL after you have applied for EAP.
While supplying SqlParameters
to the sendSqlData()
method, you can set the property importOnForgeStorage=true
. That will instruct the App Migration Platform to automatically import the data into Forge SQL for the respective app installation.
If the migrated data already exists in the SQL, it will be overwritten. This is done based on the primary key of the table.
In case you don't opt to use the Auto-import feature (importOnForgeStorage=false
), your Forge app will be responsible for performing the data ingestion and subsequently acknowledge the payload with messageProcessed(transferId, messageId)
, just like with the unopinionated data upload.
The avi:ecosystem.migration:uploaded:sql
Forge migration event is fired when the data is uploaded with optional transformers to the migration platform.
In order to reduce the transformation effort in App Migrations, we'll soon be enabling Id Mappings and possibly other transformations as part of the migration pipeline.
1 2// In your class implementing DiscoverableForgeListener List<String> rows = new ArrayList<>(); // Your SQL data in JSON format as column to value pairs rows.add("{\"user_id\": 1, \"name\": \"john\"}"); // Import on Forge Storage is true on the `users` table SqlParameters parameters = new SqlParameters("users", true); gateway.sendSqlData(rows, parameters); // Once you have exported all the data, you can call completeExport to enable progress reporting gateway.completeExport();
All columns should be present in the JSON data even if the value is null
.
You can invoke the method sendSqlData()
as many times as you need, and they may or may not be used in combination with different SqlParameters
. To avoid handling large in-memory objects it is best to do this regularly.
The migration platform will group the items in workable sizes (approximately 240KB each).
Once all data is exported, including the binary data uploaded via gateway.createAppData()
, it is important to call gateway.completeExport()
to enable progress reporting and to notify the platform that the export is complete.
The database schema will need to be defined before the migration. Refer to Forge SQL documentation.
If data does not align with the schema e.g., missing a column it will not be imported into Forge SQL.
The maximum row size is 6MiB refer to Forge SQL limits.
If an unexpected error occurs in the migration platform, this will result in either a FAILED
or TIMED_OUT
app migration status. The migration can be retried.
We recommend to encode binary and Blob data e.g., Base64 encoding, because the migration platform assumes data is in JSON format.
We want to make the most out of the EAP and would love to hear your feedback on this feature. Please fill out this form to share your thoughts, suggestions, or any issues you encounter while using the SQL in the App Migration Platform.
Rate this page: