You are here
Home > Technology > MS SQL to PostgreSQL: Migration of database from either DBMS

MS SQL to PostgreSQL: Migration of database from either DBMS

Amongst several Database Management Systems (DBMS), MS SQL is one of the most popular because of key features such as easy to learn interface and user-friendly capability. But we all know that DBMS should have a combination of powerful features that will lead to customer retention. This is the reason for the reduction in the number of users of MS SQL. Some of the disadvantages of the DBMS that should be held accountable are strict licensing policies and a high cost of ownership. Both drawbacks are not beneficial to companies that own large databases.

A good way to maneuver the high cost of ownership is to evaluate some open-source databases. A few examples of such databases are MySQL, SQLite, and PostgreSQL.


This is a database system which is both document-based and self-contained. However, these features limit its usage in the multi-user environment in lieu of large databases. The reason for these drawbacks is due to the fact that the database is only created and integrated into programs ALONE.


Compared to SQLite, this database a wider and robust coverage. Features of MySQL are point out that they belong in the class of sophisticated RDBMS. Some of the functions of the database are security, scalability, and wide storage units with various functionalities. As expected, MySQL has a few drawbacks as well which are – no support for full-text search, little or no support for parallel writes in some database engines and non-execution of full SQL standard.


This is the most advanced of the listed databases in this article. A normal RDBMS of its kind, it has a relational feature and a functionality that supports a built-in object-oriented database. For this reason, it is a great option for data integrity with heightened reliability.

By now, you should know that it is important to migrate a database from MS SQL to PostgreSQL. But there are steps that must be taken in order of priority which are:

  • Export table definitions in MS SQL
  • Convert these table definitions to PostgreSQL format
  • Load results to PostgreSQL server
  • In an intermediate storage, export source SQL data
  • Covert such data to the format of PostgreSQL
  • Load into a subsequent target database

How to export MSS QL Table Definitions

  • If you use SQL 2008 or below: Go to the ‘Management Studio’ and right-click on ‘database’. Then click on ‘Tasks, Generate Scripts’. Make sure that you are operating on default settings that ‘data’ is set to false.
  • If you use SQL 2012 and above: Go to the ‘Management Studio’ and right-click on ‘database’. Then click on ‘Tasks, Generate Scripts’. You will find the ‘Set scripting options’, click on ‘Advanced’. Then you can either select ‘data only’ or ‘data and schema’ for ‘Types of data to script’.  This is found in the General section.

Before you proceed to the subsequent step, you have to correct the resulting script.

After concluding steps one to five in the order of priority of conversion, it is important to load finished product into the target PostgreSQL table

At this point, the finished product is in the form of a CSV file. Then, you can use the ‘COPY’ as: COPY <table name> FROM <path to CSV file> DELIMITER ‘,’ CSV;

If you receive an error message like ‘Permission denied’ when you use the ‘COPY’ command, you can try the ‘\COPY’ command.

 The process of migration is not an easy task. It requires dedication and ample effort to get the job done especially because it is an advanced procedure. In addition, manual conversions are not only time-consuming and expensive, they can lead to data loss and corruption.

To minimize this risk, Intelligent Converters Company has created a software that can transform and migrate data between both DBMS in a single click. The benefits of using this software include automation, scripting, and scheduling of conversions.

Learn more about MS SQL to PostgreSQL converter on the official product page: