2009-09-02 14 views
14

私は周りを見回して、この特定の質問に答える何かを見つけることができないようです。MS SQLからPostgreSQLにデータを移行しますか?

MS SQL Server 2005 DBからPostgresインストール(8.x)にデータを移動する最も簡単な方法は何ですか?

「Full Convert Enterprise」などのユーティリティを調べましたが、実際のデータではなくヌルを挿入するという奇妙なエラーから、いずれかの理由で失敗します。 。

私は単一のビューを除くすべてのテーブルとDBで探しています、ノー保存されprocsの、機能、など私は私のためにそれを行うための小さなユーティリティを書くことについてだ。この時点で

、私はそれが必要だとは信じられません。確かにこれはできるだけ何かがありますか?私はコストについてあまり心配していませんが、無料です:)

答えて

6

Software Catalogueをご覧ください。 Administration/development toolsの下には、DBConvert for MS SQL & PostgreSQLがあります。他にも同様のツールがあります。

+1

完璧な、それはまさに私が探していたものです。私はテストドライブのためにそれを取ったので、私は完全版を購入し、それはチャンピオンのように働いています。 MSSQL、Postgres、Oracle、MS Access、Firebirdなどの間で変換や同期を行うためのツールを提供していますが、私はMSSQL/Postgresの変換についてしか話すことができませんが、これらの変換が何らかの適応であれば、このソフトウェアパッケージは79ドル相当の価値があります。 – Fred

+0

@Milen A. Radev、+1素晴らしい! – Meem

-1

まあ、MS SQL Server 2005(明らかに)とPostgreSQLのための.NETバインディングがあります。したがって、データを安全に転送できるプログラムをコード化するには、ほんの数行のコードが必要です。 PostgresはSQL Serverと同じ言語をビューに使用しないため、ビューを手動で行う必要があります。

+0

はい、それは時間の経過に追いつくために多くのメンテナンスを必要とするでしょう、私はDBスキーマが変更されるたびにコードに飛び込む必要がない何かを好むでしょう。 これを一般的にしているのであれば、データ型などに基づいて決定する必要があるほど単純ではありません。 – Fred

+0

これは簡単なルートになるとは思わない。関連するいくつかの問題については、http://wiki.postgresql.org/wiki/Microsoft_SQL_Server_to_PostgreSQL_Migration_by_Ian_Hardingを参照してください。自分の状況で動作するものを誰かがコーディングすることができるようになる可能性は非常に高いです。 –

4

MS DTS機能を使用することができます(私が考える最新バージョンではSSISに改名されました)。 DTSに関する1つの問題は、データをpgにロードするときに、各行の後にコミットすることができなかったことです。 100k行程度しかないのであれば問題ありませんが、実際は非常に遅いです。

私は通常、SQLServerのデータをCSV形式でダンプし、PostgreSQL側でCOPY WITH CSVを使用する小さなスクリプトを作成してしまいます。

これらの両方がデータを処理します。データ型が必ずしもまっすぐにマップされるわけではないので、スキーマの世話は少し難しくなります。しかし、それは簡単にスキーマの静的な負荷と一緒にスクリプト化することができます。スキーマがシンプル(たとえばvarchar/intデータ型のみ)の場合、その部分はINFORMATION_SCHEMAのデータから簡単にスクリプト化することもできます。

関連する問題