Schema Conversion Operations Reference
Command Summary
| Command | Purpose | Async | Poll via | Waiter |
|---|---|---|---|---|
| start-metadata-model-import | Import metadata from source or target DB | Yes | describe-metadata-model-imports |
metadata-model-imported |
| start-metadata-model-conversion | Convert source schema to target | Yes | describe-metadata-model-conversions |
metadata-model-converted |
| start-metadata-model-assessment | Assess conversion complexity | Yes | describe-metadata-model-assessments |
metadata-model-assessed |
| start-metadata-model-creation | Create statement-based model | Yes | describe-metadata-model-creations |
metadata-model-created |
| start-metadata-model-export-as-script | Export DDL to S3 | Yes | describe-metadata-model-exports-as-script |
metadata-model-exported-as-script |
| start-metadata-model-export-to-target | Apply converted DDL to target DB | Yes | describe-metadata-model-exports-to-target |
metadata-model-exported-to-target |
| export-metadata-model-assessment | Generate PDF/CSV report to S3 | Sync | N/A | sync |
| describe-metadata-model-children | Navigate tree structure | Sync | N/A | sync |
| describe-metadata-model | Get object definition (DDL) | Sync | N/A | sync |
| cancel-metadata-model-conversion | Cancel running conversion | Yes* | N/A | metadata-model-conversion-cancelled |
| cancel-metadata-model-creation | Cancel running creation | Yes* | N/A | metadata-model-creation-cancelled |
* The cancel API call returns synchronously, but the cancellation state transition is async (
CANCEL_RECEIVED→CANCELING→CANCELED). Use the corresponding waiter to confirm the operation reached theCANCELEDstate.Note: All waiters require
--filter 'Name=schema-conversion-operation-id,Values=<RequestId>'in addition to--migration-project-identifier.
For full parameter details and examples, refer to the linked CLI documentation for each command.
DMS Waiters
Use DMS waiters to wait for async operations to complete:
| Operation | Waiter command |
|---|---|
| Import | aws dms wait metadata-model-imported |
| Conversion | aws dms wait metadata-model-converted |
| Assessment | aws dms wait metadata-model-assessed |
| Creation (statement) | aws dms wait metadata-model-created |
| Export as script | aws dms wait metadata-model-exported-as-script |
| Export to target | aws dms wait metadata-model-exported-to-target |
| Cancel conversion | aws dms wait metadata-model-conversion-cancelled |
| Cancel creation | aws dms wait metadata-model-creation-cancelled |
| Extension pack | aws dms wait extension-pack-associated |
Documentation: https://docs.aws.amazon.com/cli/latest/reference/dms/wait/index.html
Operation Statuses
All async operations use the same status values:
| Status | Meaning |
|---|---|
RECEIVED |
Request received, queued |
IN_PROGRESS |
Operation is running |
SUCCESS |
Operation completed successfully |
FAILED |
Operation failed — check error details |
CANCEL_RECEIVED |
Cancellation request received |
CANCELING |
Cancellation in progress |
CANCELED |
Operation was cancelled |
RETRY |
Operation is being retried |
PENDING |
Operation is pending |
Execution Pattern
- Call
start-*→ extractRequestIdentifier - Wait for completion using the corresponding
aws dms waitcommand (see DMS Waiters table) - If the waiter returns successfully → proceed to next step
- If the waiter fails or is unavailable (e.g.,
Invalid choicedue to outdated CLI) → fall back to manual polling with the correspondingdescribe-*command until status reachesSUCCESSorFAILED
Fallback polling pattern (use when waiter is not available):
aws dms describe-metadata-model-<operation>s \
--migration-project-identifier <migration_project_identifier> \
--filter Name=request-id,Values=<RequestIdentifier>Check Requests[0].Status — repeat every 30 seconds until it reaches SUCCESS or FAILED.
Constraint: You MUST NOT proceed to the next step until the operation has completed. If the waiter fails or times out, you MUST fall back to polling with the describe command. Never assume an operation succeeded without confirming its status.
Key Notes
describe-metadata-modelreturnsTargetMetadataModelswith targetSelectionRules— use these to query the TARGET tree (do NOT reuse source selection rules for target)describe-metadata-model-childrenreturnsMetadataModelChildren[]withMetadataModelNameandSelectionRules— use the child'sSelectionRulesto drill deeperexport-metadata-model-assessmentis synchronous — returns S3 links immediately (PdfReport.S3ObjectKey,CsvReport.S3ObjectKey)start-metadata-model-creationonly supports SQL Server → PostgreSQL/Aurora PostgreSQL