Database Migration Service for heterogeneous SQL Server to Cloud SQL for PostgreSQL
Stay organized with collections
Save and categorize content based on your preferences.
With Database Migration Service, you can convert your SQL Server database schema,
tables, and code objects to PostgreSQL syntax, and then migrate
data from your SQL Server databases to Cloud SQL for PostgreSQL.
Database Migration Service offers support for multiple different SQL Server
sources, including Amazon RDS, Microsoft Azure SQL Managed Instance, and self-managed SQL Server
instances.
This page provides an overview of the key Database Migration Service features
for heterogeneous SQL Server to Cloud SQL for PostgreSQL migrations:
Code and schema conversion describes how Database Migration Service
can help you convert your schemas, tables, and other objects from
SQL Server syntax to PostgreSQL syntax.
Continuous migrations data flow provides an end-to-end overview
of how your data moves in Google Cloud during the migration process.
Monitoring
gives an introduction for logs and metrics that can
help you observe the progress and health of your migration job.
Migration security looks at encryption features offered by
Database Migration Service.
Supported source and destination databases
The following table lists all supported SQL Server source and destination databases:
Source databases
Destination databases
Amazon RDS for SQL Server
Cloud SQL for PostgreSQL 12, 13, 14, 15, 16, 17.
Microsoft Azure SQL Managed Instance
Microsoft Azure SQL Database tier S3 and above
Cloud SQL for SQL Server
Self-managed SQL Server versions:
Enterprise 2008 and later, Standard 2016 SP1 and later, Developer 2008 and later
(on premises or on any cloud VM that you fully control)
Unsupported source databases
Database Migration Service doesn't support migrating from the following SQL Server versions:
SQL Server Standard edition versions from 2008 to 2014
SQL Server Express
SQL Server Web
Code and schema conversion
Database Migration Service conversion workspaces provide an interactive editor experience
where you can convert your schemas, tables, and other objects from
SQL Server syntax to PostgreSQL syntax.
Interactive conversion workspaces also provide support for Gemini
assisted workflows with code explainability and conversion issue fixing.
For heterogeneous SQL Server migrations to PostgreSQL,
Database Migration Service supports the continuous migration flow. In this approach,
your data is first loaded from a full dump, and then continuously updated based on
data change information surfaced from change tables.
Figure 2. Data movement during Database Migration Service for
SQL Server heterogeneous migrations. (click to enlarge)
At a high level, your data moves through the migration phases as follows:
You use Database Migration Service conversion workspace to convert your schemas,
tables, and other objects from SQL Server syntax to PostgreSQL syntax.
SQL Server databases can often have several thousand objects
whose schema you need to convert. With Database Migration Service, you can divide your
work into multiple phases. Database Migration Service can connect to your source
databases and pull the required schema information when needed.
When you finish translating all your entities to PostgreSQL syntax,
you apply the schema to the databases in the destination instance.
The goal of this stage is to prepare your destination databases so that
Database Migration Service can later replicate the data from source tables to their
correct equivalents in Cloud SQL for PostgreSQL.
Once your schema is applied, you can begin the data migration.
The full dump phase is the first part of the migration process. During
full dump, Database Migration Service connects to your source instance, reads the contents
of the tables you selected for migration, and then loads the data to the
Cloud SQL for PostgreSQL destination instance.
In this phase, Database Migration Service captures actual contents of your database.
When the full dump phase is over, Database Migration Service switches to the
change data capture (CDC) phase. During CDC, Database Migration Service keeps monitoring
your source databases for changes, and then continuously replicates them on the
destination instance.
In this phase, Database Migration Service doesn't copy actual data from your source
tables: instead, it reads information extracted from dedicated change tables
to replicate changes in the destination. For more information about this
mechanism, see
Change Data Capture.
You can stop the ongoing replication and promote the migration job when you want
to switch your application so that it uses the Cloud SQL for PostgreSQL
destination instance as the production database. For a detailed, step-by-step
migration guide, see
SQL Server to Cloud SQL for PostgreSQL migration guide.
Monitoring
Figure 2. Sample observability diagram in Database Migration Service.
(click to enlarge)
Database Migration Service provides extensive logging and observability capabilities
to help you monitor the migration progress. These features include real-time
diagnostics for replication delay and CDC progress,
as well as detailed logs for Cloud SQL for PostgreSQL destination instance health
and migration job state.
Database Migration Service provides multiple encryption mechanisms you can use
for additional security during the migration process. These mechanisms include:
SSL/TLS certificates for encrypting the network connections between
Database Migration Service and source databases. For more details, see
Encryption overview.
Encryption certificates for securing data movement during full dump and CDC
phases. For more details, see
CMEK for migration jobs.
What's next
To learn more about SQL Server data type and feature support in
Database Migration Service, see
Known limitations.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eDatabase Migration Service facilitates the conversion of SQL Server databases to Cloud SQL for PostgreSQL, including schema, tables, and code objects.\u003c/p\u003e\n"],["\u003cp\u003eThe service supports a variety of SQL Server sources, such as Amazon RDS, Azure SQL Managed Instance, and self-managed instances, while only supporting Cloud SQL for PostgreSQL versions 12, 13, 14, and 15.\u003c/p\u003e\n"],["\u003cp\u003eDatabase Migration Service offers conversion workspaces to transform SQL Server syntax into PostgreSQL syntax and supports Gemini assisted workflows for code explainability and fixing conversion issues.\u003c/p\u003e\n"],["\u003cp\u003eThe migration process involves a full dump phase to initially load data, followed by a continuous change data capture (CDC) phase to keep the destination database synchronized.\u003c/p\u003e\n"],["\u003cp\u003eSecurity features of Database Migration Service include SSL/TLS encryption for network connections and encryption certificates for data movement during migration.\u003c/p\u003e\n"]]],[],null,["# Database Migration Service for heterogeneous SQL Server to Cloud SQL for PostgreSQL\n\nWith Database Migration Service, you can convert your SQL Server database schema,\ntables, and code objects to PostgreSQL syntax, and then migrate\ndata from your SQL Server databases to Cloud SQL for PostgreSQL.\nDatabase Migration Service offers support for multiple different SQL Server\nsources, including Amazon RDS, Microsoft Azure SQL Managed Instance, and self-managed SQL Server\ninstances.\n\nThis page provides an overview of the key Database Migration Service features\nfor heterogeneous SQL Server to Cloud SQL for PostgreSQL migrations:\n\n- [Supported source and destination](#supported-src-and-dest) lists all SQL Server\n versions supported by Database Migration Service.\n\n- [Code and schema conversion](#conversion) describes how Database Migration Service\n can help you convert your schemas, tables, and other objects from\n SQL Server syntax to PostgreSQL syntax.\n\n- [Continuous migrations data flow](#data-flow-migration-types) provides an end-to-end overview\n of how your data moves in Google Cloud during the migration process.\n\n- [Monitoring](#monitoring)\n gives an introduction for logs and metrics that can\n help you observe the progress and health of your migration job.\n\n- [Migration security](#securing-migration-jobs) looks at encryption features offered by\n Database Migration Service.\n\nSupported source and destination databases\n------------------------------------------\n\nThe following table lists all supported SQL Server source and destination databases:\n\nUnsupported source databases\n----------------------------\n\nDatabase Migration Service doesn't support migrating from the following SQL Server versions:\n\n- SQL Server Standard edition versions from 2008 to 2014\n- SQL Server Express\n- SQL Server Web\n\nCode and schema conversion\n--------------------------\n\nDatabase Migration Service conversion workspaces provide an interactive editor experience\nwhere you can convert your schemas, tables, and other objects from\nSQL Server syntax to PostgreSQL syntax.\nInteractive conversion workspaces also provide support for Gemini\nassisted workflows with code explainability and conversion issue fixing.\n\nTo learn more, see\n[Conversion workspaces](/database-migration/docs/sqlserver-to-csql-pgsql/about-conversion-workspaces).\n\nContinuous migrations data flow\n-------------------------------\n\nFor heterogeneous SQL Server migrations to PostgreSQL,\nDatabase Migration Service supports the continuous migration flow. In this approach,\nyour data is first loaded from a full dump, and then continuously updated based on\ndata change information surfaced from change tables.\n[](#lightbox-trigger) **Figure 2.** Data movement during Database Migration Service for SQL Server heterogeneous migrations. (click to enlarge)\n\nAt a high level, your data moves through the migration phases as follows:\n\n1. You use Database Migration Service conversion workspace to convert your schemas,\n tables, and other objects from SQL Server syntax to PostgreSQL syntax.\n\n SQL Server databases can often have several thousand objects\n whose schema you need to convert. With Database Migration Service, you can divide your\n work into multiple phases. Database Migration Service can connect to your source\n databases and pull the required schema information when needed.\n2. When you finish translating all your entities to PostgreSQL syntax,\n you apply the schema to the databases in the destination instance.\n\n The goal of this stage is to prepare your destination databases so that\n Database Migration Service can later replicate the data from source tables to their\n correct equivalents in Cloud SQL for PostgreSQL.\n\n Once your schema is applied, you can begin the data migration.\n3. The **full dump phase** is the first part of the migration process. During\n full dump, Database Migration Service connects to your source instance, reads the contents\n of the tables you selected for migration, and then loads the data to the\n Cloud SQL for PostgreSQL destination instance.\n\n In this phase, Database Migration Service captures actual contents of your database.\n4. When the full dump phase is over, Database Migration Service switches to the\n **change data capture (CDC) phase**. During CDC, Database Migration Service keeps monitoring\n your source databases for changes, and then continuously replicates them on the\n destination instance.\n\n In this phase, Database Migration Service doesn't copy actual data from your source\n tables: instead, it reads information extracted from dedicated change tables\n to replicate changes in the destination. For more information about this\n mechanism, see [Change Data Capture](/database-migration/docs/sqlserver-to-csql-pgsql/migration-types-and-phases#cdc).\n\nYou can stop the ongoing replication and promote the migration job when you want\nto switch your application so that it uses the Cloud SQL for PostgreSQL\ndestination instance as the production database. For a detailed, step-by-step\nmigration guide, see\n[SQL Server to Cloud SQL for PostgreSQL migration guide](/database-migration/docs/sqlserver-to-csql-pgsql/guide).\n\nMonitoring\n----------\n\n[](#lightbox-trigger) **Figure 2.** Sample observability diagram in Database Migration Service. (click to enlarge)\n\nDatabase Migration Service provides extensive logging and observability capabilities\nto help you monitor the migration progress. These features include real-time\ndiagnostics for replication delay and CDC progress,\nas well as detailed logs for Cloud SQL for PostgreSQL destination instance health\nand migration job state.\n\nFor more details, see\n[Migration job metrics](/database-migration/docs/sqlserver-to-csql-pgsql/migration-job-metrics).\n\nMigration security\n------------------\n\nDatabase Migration Service provides multiple encryption mechanisms you can use\nfor additional security during the migration process. These mechanisms include:\n\n- SSL/TLS certificates for encrypting the network connections between\n Database Migration Service and source databases. For more details, see\n [Encryption overview](/database-migration/docs/sqlserver-to-csql-pgsql/encrypt-connections-with-certificates).\n\n- Encryption certificates for securing data movement during full dump and CDC\n phases. For more details, see\n [CMEK for migration jobs](/database-migration/docs/sqlserver-to-csql-pgsql/cmek-for-migration-jobs).\n\nWhat's next\n-----------\n\n- To learn more about SQL Server data type and feature support in\n Database Migration Service, see\n [Known limitations](/database-migration/docs/sqlserver-to-csql-pgsql/known-limitations).\n\n- To get a complete, step-by-step migration walkthrough, see\n [SQL Server to Cloud SQL for PostgreSQL migration guide](/database-migration/docs/sqlserver-to-csql-pgsql/guide)."]]