Repository navigation
Japanese v2

English | Japanese
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、タイムゾーン付き型などの列定義と値を照合しています。検証記録
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 で表示できます。
同梱の 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 の純正 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 にあります。