Skip to content
tomneko edited this page Nov 12, 2026 · 3 revisions

fbconverter — Firebird Database Converter

English | Japanese

fbconverter v2.0.0 日本語ガイド

fbconverter は、Firebird サーバーからスキーマとデータを読み取り、別バージョンのデータベースを新規作成する Windows ツールです。従来の GUI 操作や開発の経緯は、富永さんの日本語記事を参照してください。

ダウンロードと対応バージョン

GitHub Releases の v2.0.0 から WIN32 または WIN64 の ZIP を取得し、フォルダ構成ごと展開します。GUI を使う場合は fbconverter.exe を起動してください。

配布版 同梱の Embedded 変換先
WIN32 1.5、2.0、2.1、2.5、3.0、4.0、5.0
WIN64 2.1、2.5、3.0、4.0、5.0

変換元として選べる Firebird サーバーは 1.0、1.5、2.0、2.1、2.5、3.0、4.0、5.0 系です。1.0 系は 1.0.3 で検証しました。WIN64 で 1.0・1.5・2.0 に接続するときは同梱の 2.5.4 x64 クライアントを使いますが、変換元バージョンには接続するサーバーの系列を指定します。CLI と MCP はローカルの Embedded DB を変換先にします。

3.0 → 4.0・5.0 と 4.0 → 5.0 では、BOOLEAN、INT128、38桁の NUMERIC/DECIMAL、DECFLOAT、タイムゾーン付き型などの列定義と値を照合しています。検証記録

CLI で変換する

PowerShell から Firebird 2.5 の Shift_JIS DB を Firebird 5.0 Embedded の UTF-8 DB に移行する例です。

.\fbconverter.exe --convert --source 'C:\data\source.fdb' --destination 'C:\data\migrated.fdb' `
  --source-version 2.5 --destination-version 5.0 --source-host localhost `
  --source-charset SJIS_0208 --destination-charset UTF8 | Out-Host
$LASTEXITCODE

--source は変換元サーバーから見たパス、--destination は新規作成するローカルファイルのパスです。接続先の既定値は localhost:3050 で、ポートとユーザー名は --source-port と --source-user で指定できます。ホスト名を使わず直接ローカル接続する場合は --source-local を指定します。パスワードは環境変数 FBCONVERTER_SOURCE_PASSWORD で渡せます。

終了コード 意味
0 変換成功
1 変換エラー
2 引数エラー、または変換先が既に存在する

変換先が既にある場合はそのファイルを保持します。出力の Logs: に表示されたフォルダでログを確認できます。作業フォルダの親は --work-dir で指定でき、単一スレッドで実行する場合は --single-thread を指定します。引数の一覧は .\fbconverter.exe --help | Out-Host で表示できます。

MCP クライアントから使う

同梱の fbconverter_mcp.py は、同じフォルダにある fbconverter.exe を呼び出すローカルの stdio MCP サーバーです。Python 3.11 以降と uv が必要です。初回起動時に uv が依存パッケージを取得します。

MCP クライアントが mcpServers 形式を使う場合の設定例です。パスは実際の展開先に合わせてください。

{
  "mcpServers": {
    "fbconverter": {
      "command": "uv",
      "args": ["run", "--script", "C:/tools/fbconverter/fbconverter_mcp.py"]
    }
  }
}

convert_database を呼び出す引数の例です。

{
  "source": "C:/data/source.fdb",
  "destination": "C:/data/migrated.fdb",
  "source_version": "2.5",
  "destination_version": "5.0",
  "source_host": "localhost",
  "source_charset": "SJIS_0208",
  "destination_charset": "UTF8"
}

結果には出力先、CLI の終了コード、ログの場所、標準出力と標準エラーが含まれます。変換先が既にある場合はツールエラーとして終了コード 2 が返り、既存ファイルが保持されます。パスワードが必要な場合は MCP サーバーの環境変数 FBCONVERTER_SOURCE_PASSWORD を設定します。別の実行ファイルを使う場合は同じ環境で FBCONVERTER_EXE を指定できます。

Firebird 2.1.7 の EUC 修正

Firebird 2.1 の純正 fbintl.dll には、EUCJ_0208 から Unicode へ変換するときの出力バッファ長の計算に問題があり、接続時に -924、EUC 列を作成するときに -802 が発生することがあります。2.1 系の最終公開版 2.1.7 にも CORE-2095 の修正は入っていません。CORE-2095 の修正差分

v2.0.0 の WIN32/WIN64 ZIP には、CORE-2095 をバックポートした DLL を Embedded/2.1/intl/fbintl.dll として収録しています。2.1 Embedded を変換先に選べば、この DLL が使われます。2.1 サーバーを変換元として EUC で接続する場合は、文字セット処理を行う変換元サーバーの fbintl.dll にも修正が必要です。バックポートのソースとビルド手順は各 ZIP の Sources/source-2.0.0.tar.gz にあります。

Clone this wiki locally