Конвертер, средство миграции баз данных MS SQL в формат PostgreSQL

Чт, 14 февраля 2013 @ 1:08 AM написал в PostgreSQL3 комментариев

Рано или поздно приходит разочарование в производительности MS SQL Server и его "тараканах", поэтому разработчики обращают свой взор на более продвинутые продукты, такие как Postgresql и Mysql.

На первом из них хотелось бы остановиться подробнее.

На собственном опыте были опробованы различные платные и бесплатные средства конвертации базы данных достаточно сложной структуры, хранящей в полях таблиц различную информацию, в том числе GUID и фотографии.

В лучшем случае удавалось перенести структуру базы данных. Данные переносились частично, не для всех полей.

После долгих мучений решил воссоздать структуры таблиц с помощью SQL запросов


TABLE CREATE ...

, а для переноса собственно данных написать незамысловатую программу, используя Visual Studio и язык программирования C#.

В качестве драйвера Postgresql использовалась библиотека Npgsql (сайт разработчика).

Чтобы программа на C# могла использовать эту библиотеку рекомендуется добавить в GAC следующим образом:


gacutil -i Npgsql.dll



В результате разработки появилась программа "PstgreMster version 1 final", которая доступна для скачивания совершенно бесплатно:

Скачать PstgreMster

Программа распространяется по принципу "как есть", если будут вопросы, обращайтесь через форму обратной связи моего блога.

Тагильцев Ю.В.
http://tagiltsev.ru/?goto=314

Теги: php

Всего 3 комментариев на эту тему

  • Питер написал 2013-02-18 01:06:59:

    Спасибо за конвертор, только таблицы муторно вручную переносить(...

  • Ирина написал 2017-02-14 11:01:21:

    Здравствуйте!
    Во время переноса данных из одной таблицы в другую выдается ошибка:
    Executing...
    Error: ОШИБКА: 22008: значение поля типа date/time вне диапазона: "11/30/2016 11:05:37 AM"
    то есть данные в MSSQL верны, но PostgreSQL воспринимает их как ошибочный формат данных. Что можно сделать в таком случае? С PostgreSQL работаю всего 3 дня, так что могу чего-то и не знать.

  • Автор написал 2017-02-14 17:11:22:

    Ирина, сначала переведите поля дата/время в формат ISO 8601, т.е. yyyy-mm-dd hh:mm:ss. Тогда всё получится.

Оставить комментарий

поставьте галочку если вы не бот)