Pro ยท Lesson 9 of 11
Two worked shapes. PostgreSQL to Aurora PostgreSQL, and SQL Server to Aurora PostgreSQL. The steps are the decisions, not a claim that your account's console looks identical.
Sign in to save your place.
One move stays in the same language. The other hires a translator before the movers. Both still need a truck, a diary of changes, and a count at the end.
Create the target schema with the tools you trust: the database's own dump of schema, or a reviewed script. Check extensions Aurora does not offer. Plan sequences so the target does not reuse a key the source will still issue during CDC.
If you use DMS, set wal_level and a slot, test the endpoint from the replication network, include the tables explicitly, run full load and CDC, and watch slot lag so the source disk does not fill. If you use native logical replication instead, you are not in DMS, and that is a valid outcome. Write down which one you picked.
This one is heterogeneous. Run a conversion assessment. Expect manual work on procedural code. Apply the reviewed schema to Aurora. Only then create the DMS task. SQL Server CDC or the replication feature the current DMS source page requires must be on, with log retention that covers the load.
Identity columns and empty tables are a common surprise. Validation can show matching counts while an application insert fails because a sequence was not set past the maximum key. Check the keys with SQL, not only with the DMS percentage.
| Example | Schema | Log |
|---|---|---|
| PostgreSQL to Aurora PostgreSQL | Mostly the same dialect. Check extensions. | Logical WAL and a slot if DMS CDC is the tool |
| SQL Server to Aurora PostgreSQL | Convert first. Read the action items. | The SQL Server CDC setup DMS documents for that edition |
Step 1 of 3Same family: review extensions and keys, then copy.
Step 2 of 3Different family: convert and review before the load.
Step 3 of 3Both examples still need a change log if the source stays live.
This query shape is PostgreSQL. Run it on a source you are allowed to read. The number is the point of the habit, not a value this page can know.
SELECT MAX(id) AS max_id FROM shop.orders;
-- After load, the target sequence must start above max_id
-- or the first application insert collides.
-- SQL Server identity needs the same conversation
-- with that engine's words, not these words.
Checked against the linked documentation in October 2026. A later release can move a flag, a price, or a supported pair. Use the page for the version you installed.