Ответ 1
Посмотрите Каталог ПО. В Средства администрирования/разработки Я вижу DBConvert для MS SQL и PostgreSQL. Возможно, есть и другие аналогичные инструменты.
Я огляделся и не мог найти ничего, что могло бы ответить на этот конкретный вопрос.
Каков самый простой способ переноса данных из базы данных MS SQL Server 2005 в установку Postgres (8.x)?
Я рассмотрел несколько утилит, таких как "Full Convert Enterprise" и т.д., и все они не работают по той или иной причине, начиная от странных ошибок, которые заставляют его взорвать до вставки нулей, а не фактических данных (wth?).
Я смотрю на БД со всей таблицей, за исключением одного представления, без хранимых процедур, функций и т.д.
В этот момент я собираюсь написать небольшую утилиту, чтобы сделать это для меня, я просто не могу поверить, что это необходимо. Неужели есть что-то, что может это сделать? Я даже не слишком беспокоюсь о стоимости, хотя свободен предпочтительнее:)
Посмотрите Каталог ПО. В Средства администрирования/разработки Я вижу DBConvert для MS SQL и PostgreSQL. Возможно, есть и другие аналогичные инструменты.
Вы можете использовать функциональность MS DTS (переименованную в SSIS в последней версии, я думаю). Одна из проблем с DTS заключается в том, что я не смог заставить ее совершить фиксацию после каждой строки при загрузке данных в pg. Это нормально, если у вас есть только пара из 100 тыс. Строк или около того, но это очень медленно.
Обычно я пишу небольшой script, который выгружает данные из SQLServer в формате CSV, а затем использует COPY WITH CSV на стороне PostgreSQL.
Тем не менее, оба они заботятся только о данных. Уход за схемой немного сложнее, так как типы данных не обязательно отображаются прямо. Но его можно легко создать вместе со статической нагрузкой схемы. Если схема проста (например, varchar/int datatypes), эта часть также может быть легко списана с данными в INFORMATION_SCHEMA.Я не знаю, почему никто не упомянул простейший и простой способ использования надежной MS SQL Server Management Studio.
Просто вам просто нужно использовать встроенную функцию импорта/экспорта SSIS. Вы можете выполнить следующие действия:
Во-первых, вам необходимо установить драйвер ODBC PostgreSQL для Windows. Очень важно установить правильную версию с точки зрения архитектуры процессора (x86/x64).
Внутри Management Studio, щелкните правой кнопкой мыши по базе данных: Задачи → Экспорт данных
В качестве источника данных выберите собственный клиент SQL Server.
Выберите поставщика данных.Net Framework для ODBC в качестве драйвера назначения.
Установите строку подключения в свою базу данных в следующей форме:
Driver = {PostgreSQL ODBC Driver (UNICODE)}; Server =; Port =; Database =; UID =; PWD =
На следующей странице вам просто нужно выбрать таблицы, которые вы хотите экспортировать. SQL Server будет генерировать сопоставление по умолчанию, и вы можете его редактировать. Вероятно, вы столкнетесь с некоторыми проблемами несоответствия типа, которые требуют определенного времени. Например, если в SQL Server имеется логический столбец, вы должны экспортировать его как int4.
В Microsoft Docs представлено подробное описание подключения к PostgreSQL через ODBC.
PS: если вы хотите увидеть установленный вами драйвер ODBC, вам необходимо проверить его через ODBC Data Source Administrator.
Ну, есть привязки .NET для MS SQL Server 2005 (очевидно), а также для PostgreSQL. Поэтому для кодирования программы, которая могла бы безопасно переносить данные из одного в другой, потребовалось бы всего несколько строк кода. Представление, вероятно, должно быть выполнено вручную, поскольку Postgres не использует тот же язык для представлений, что и SQL Server.