SQL Server для Postgres - PullRequest
       9

SQL Server для Postgres

8 голосов
/ 23 октября 2009

Я провожу некоторые исследования по переходу с Microsoft SQL Server на Postgresql и ищу лучшие инструменты для выполнения работы.

Специально для поиска инструмента, похожего на MySQL Migration Toolkit, я провел тестовую миграцию наших баз данных на MySQL, и каждая из них была запущена менее чем за час.

Похоже, что pgAdmin будет делать большую часть того, что делал с Sql Server Management Studio, и таблицы pg_stat будут достаточно хороши для настройки производительности.

Так, каковы другие ключевые инструменты, которые все используют при разработке и работе с postgresql?

Ответы [ 5 ]

3 голосов
/ 28 октября 2009

При переносе postgresql из одной версии в другую, у которой не было инструментов для этого, я использовал только один инструмент, sed unix.

Моя рекомендация - просто экспортировать sql. Очистите специфичные для клиента экспорта эксцентрики (обычно в комментариях), затем попробуйте импортировать их в базу данных sql и посмотрите, что произойдет. Ошибки - это ваши рекомендации. Используйте sed, чтобы пройти через файл mssql и вывести файл sql postgres, исправляющий ошибки. Когда вы окажетесь в функциональной среде, посмотрите на сами данные, некоторые вещи могут отличаться от ожидаемых. После тестирования и дальнейшей коррекции все готово.

2 голосов
/ 28 октября 2009

Я согласен с Chisum. Я бы экспортировал данные из MSSQL в виде сценария SQL (или подмножества, если оно огромно - возможно, одна таблица за раз или меньшие диапазоны); и попробуйте запустить его против postgres; и посмотрим, что получится. Возможно, вам придется написать Sed или небольшой Perl-скрипт, если есть какие-то проблемы, чтобы заставить его работать правильно, но я не ожидаю, что это будет смешно.

Импортируйте данные в postgres и посмотрите, что произойдет. Вы, вероятно, столкнетесь с большим количеством проблем со структурой таблиц, индексами и ссылками, чем с другими вещами.

На сайте Postgres есть некоторая информация: http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_SQL_Server

0 голосов
/ 12 декабря 2017

Liquibase может помочь вам в преобразовании схемы из MS SQL в специфическую схему PostgreSQL (требуется несколько ручных вмешательств, но это весьма полезно) Для переноса данных вы можете экспортировать SQL Server в csv и импортировать его в postgresql.

0 голосов
/ 13 февраля 2015

Это зависит от того, что именно вам нужно конвертировать из SQL Server в PostgreSQL. Если вы говорите только о DDL и процессе преобразования данных, то вы можете попытаться экспортировать все с помощью SQL Server Management Studio, как предложено, попробуйте запустить этот скрипт в базе данных PostgreSQL с помощью утилиты PGAdmin или psql и попытаться исправить ошибки, возникающие при импорте , Но учтите, что даже в этом случае могут возникнуть проблемы с преобразованием RESERVED WORDS, преобразованием IDENTITY, преобразованием вычисляемых столбцов, многоязычным преобразованием данных, преобразованием кластерных индексов и другими. Не уверен, что REGEXP может помочь вам в решении проблем, связанных с преобразованием этих функций.

Если вы говорите о преобразовании объектов Business Logics, таких как триггеры, SP, UDF, тогда в общем процессе преобразования будет гораздо больше проблем, даже если использовать существующие бесплатные утилиты, которые выполняют миграцию для SQL Server в базы данных PostgreSQL. потому что синтаксис и методы для указания и ведения той или иной операции в обеих базах данных действительно разные. Даже если вы являетесь настоящим ГУРУ в REGEXP в таком случае, будет очень сложно автоматизировать изменение кода или повторный факторинг кода в поддержку специфики исходной базы данных. Наиболее распространенными функциями являются: встроенные функции, иерархические запросы, обработка ошибок, обработка транзакций, возврат и обработка наборов результатов, Dynamic-SQL, преобразование триггеров операторов и многие другие.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...