オープンソースのFirebird Converterがリリースされました。
Firebird Converterは、異なるバージョンのFirebird間でデータベースを構造・データ共にコンバートするためのツールです。
Firebirdの各バージョン間ではODS(データベースのバイナリ構造)に違いがあるため、Firebirdをバージョンアップする際にはいったんデータベースをバックアップしてリストアしなくてはなりません。しかし、キャラクタセットの取扱にバージョン間で相違があるためにうまく移行することが出来ず、過去のバージョンで放置されてきたケースがありました。
Firebird Converterは、1.0、1.5、2.0、2.1、2.5の各バージョンのFirebird(ローカル・リモート問わず)に接続し、メタデータを抽出した上で新たなデータベースをリモートサーバーやローカルサーバー、また同時に配布されるエンベデッドサーバーを利用して生成します。そして、移行元のデータベースからテーブルごとに抽出したデータを移行先のデータベースへキャラクタセットを変換しながら移行します。
もちろん、ビューやトリガー、ジェネレーターなどのデータベースオブジェクトも自動的に同じ状態で移行します。データの移行時にはDMLを1行ずつ生成するモードも利用できるため、何か問題が起きてもログを解析することで問題を特定することが可能です。
Firebird Converterは、Delphi XE4でビルドされ、MITライセンスでWIN32版とWIN64版でリリースされます。また、ミドルウェアとしてオープンソースのZeosDBOを使用し、マルチスレッドのスレッドプーリングにオープンソースのAsyncCallを使用しています。ソースコードとビルド済みバイナリは Github.com上で公開されています。
ぜひ、ご利用下さい。
Githu.com上のリポジトリ
https://github.com/tomneko/fbconverter
Win32版とWin64版のリリースバイナリへの直リンク
fbconverter-1.0.0.12_WIN32.zip
fbconverter-1.0.0.12_WIN64.zip
クレジット
Programming by Hideaki Tominaga
Programming by Tsutomu Hayashi
Sponsored and Tested by Shinya Nakagawa
※WIN64版では、Firebird1.0、1.5、2.0がリリースされていないため、これらのクライアントやエンベデッドサーバーを利用することは出来ません。