AWS DMS Table Mapping Generator
AWS Database Migration Service drives every task from a table-mappings JSON document, and a single misplaced key makes the task fail with an unhelpful error. Fill in the schema, the tables you want and the transformations you need, and this generator writes the rules block for you. Everything runs in your browser - no endpoint, credential or table name is uploaded.
Do more than aws dms table mapping generator — meet Chat2DB
Chat2DB is an AI-powered SQL client for Windows, macOS and Linux. Write SQL in natural language, format and optimize queries automatically, and manage MySQL, PostgreSQL, Oracle and 20+ other databases in one workspace.
How to use
- Enter the source schema, then list the table patterns to include and exclude. % is the wildcard, so % alone migrates every table in the schema.
- Add the transformations you need: rename the target schema, prefix table names, force lower/uppercase identifiers, or drop sensitive columns from the target.
- Copy table-mappings.json and pass it to create-replication-task with --table-mappings file://table-mappings.json, or paste it into the DMS console's JSON editor.
Frequently asked questions
Why does my DMS task migrate zero tables?
The usual cause is a schema name that does not match the source's actual case. DMS compares schema-name and table-name literally against the source catalog, so a Postgres schema stored as 'public' will never match a rule that says 'PUBLIC', and an Oracle schema stored as 'HR' will never match 'hr'. Check the exact spelling in the source catalog first - information_schema.tables for Postgres and MySQL, ALL_TABLES for Oracle. The second most common cause is an exclude rule that is broader than you intended: 'temp_%' also excludes 'temp_orders_2026', and because DMS resolves overlapping selection rules by specificity rather than by file order, adding an include rule below it will not win.
What is the difference between a selection rule and a transformation rule?
A selection rule decides which objects take part in the task; it uses rule-action include or exclude and is the only rule type that is mandatory - a task with no include rule migrates nothing. A transformation rule changes the object once it has been selected: renaming a schema, table or column, adding a prefix or suffix, removing a column, or converting identifier case. Transformations never widen the set of migrated tables, so if a table is missing from the target the bug is always in a selection rule. Transformation rules also carry a rule-target key (schema, table or column) that selection rules do not have; omitting it is the most common JSON validation error.
Can I filter rows so I only migrate recent data?
Yes - attach a filters array to the selection rule for that table, with a filter-type of 'source', the column name, and conditions using gte, lte, eq, ste or between. That is what the row filter in this generator produces. Two caveats matter in production: the column must be numeric, date/time or string (LOB columns are rejected), and during ongoing CDC the filter is re-evaluated per change, so a row updated outside the range stops replicating but is not removed from the target. For a moving window, most teams filter on the full load and then reconcile with a scheduled job. Chat2DB is handy for checking the source and target row counts side by side while a task runs - download it at https://chat2db.ai/download or use https://app.chat2db.ai.
