Skip to content

DataMigration ​

The DataMigration resource allows you to manage AWS DMS DataMigrations for migrating data between different database engines and ensuring minimal downtime.

Minimal Example ​

Create a basic data migration with required properties and one optional setting.

ts
import AWS from "alchemy/aws/control";

const basicDataMigration = await AWS.DMS.DataMigration("basicMigration", {
  DataMigrationType: "full-load",
  MigrationProjectIdentifier: "myMigrationProject",
  ServiceAccessRoleArn: "arn:aws:iam::123456789012:role/myDMSRole",
  DataMigrationName: "MyFirstDataMigration"
});

Advanced Configuration ​

Configure a data migration with additional settings for source data and tags.

ts
const advancedDataMigration = await AWS.DMS.DataMigration("advancedMigration", {
  DataMigrationType: "cdc",
  MigrationProjectIdentifier: "myAdvancedMigrationProject",
  ServiceAccessRoleArn: "arn:aws:iam::123456789012:role/myDMSRole",
  SourceDataSettings: [
    {
      SourceType: "mysql",
      EndpointArn: "arn:aws:dms:us-west-2:123456789012:endpoint:example-endpoint",
      DatabaseName: "source_database"
    }
  ],
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    },
    {
      Key: "Project",
      Value: "Migration"
    }
  ]
});

Using Existing Resources ​

Create a data migration while adopting existing resources if they already exist.

ts
const adoptExistingDataMigration = await AWS.DMS.DataMigration("adoptMigration", {
  DataMigrationType: "full-load",
  MigrationProjectIdentifier: "adoptMigrationProject",
  ServiceAccessRoleArn: "arn:aws:iam::123456789012:role/myDMSRole",
  DataMigrationName: "AdoptedMigration",
  adopt: true
});

Error Handling Example ​

Set up a data migration with detailed settings for error handling.

ts
const errorHandlingMigration = await AWS.DMS.DataMigration("errorHandlingMigration", {
  DataMigrationType: "full-load-and-cdc",
  MigrationProjectIdentifier: "errorHandlingProject",
  ServiceAccessRoleArn: "arn:aws:iam::123456789012:role/myDMSRole",
  DataMigrationSettings: {
    TargetMetadata: {
      TargetSchema: "target_schema",
      SupportLobs: true,
      FullLoadSettings: {
        TargetTablePrep: "DROP_AND_CREATE"
      }
    },
    ErrorHandling: {
      ErrorBehavior: "LOG",
      MaxErrors: 10
    }
  }
});