kbackup は、Kintone のレコードとフィールド情報をバックアップするための軽量 CLI ツールです。
バックアップ処理の本体は KintoneNetLibrary.Backup が担当しており、kbackup はその薄い CLI ラッパーとして動作します。
- .NET 10
- Kintone API Token
- Windows / macOS / Linux で動作します
- リポジトリをクローンします。
git clone https://github.com/k14a/kbackup.git cd kbackup - ビルドします。
dotnet build
- 実行します。
dotnet run --project src/KBackup.Cli/KBackup.Cli.csproj -- backup --app-id <APP_ID> --api-token <API_TOKEN>
必要に応じて、ローカルツールとして dotnet tool から実行することも可能です。
dotnet run --project src/KBackup.Cli/KBackup.Cli.csproj -- backup \
--sub-domain example \
--app-id 123 \
--api-token YOUR_API_TOKEN| オプション | 必須 | 説明 |
|---|---|---|
--sub-domain |
✓ | Kintone サブドメイン(例: example) |
--app-id |
✓ | アプリ ID |
--api-token |
API トークン | |
--out-dir |
バックアップ先の親ディレクトリ(デフォルト: .) |
|
--split |
ファイルあたりのレコード数(デフォルト: 1000、最大: 5000) | |
--query |
レコードを絞り込むクエリ式 | |
--download-files |
添付ファイルをダウンロードするか(デフォルト: true) |
|
--include-field-schema |
フィールドスキーマを含めるか(デフォルト: true) |
|
--overwrite |
既存ファイルを上書きするか(デフォルト: false) |
dotnet run --project src/KBackup.Cli/KBackup.Cli.csproj -- restore \
--sub-domain example \
--app-id 123 \
--api-token YOUR_API_TOKEN \
--backup-dir backup/AppID000123/20260101_123456| オプション | 必須 | 説明 |
|---|---|---|
--sub-domain |
✓ | Kintone サブドメイン |
--app-id |
✓ | アプリ ID |
--api-token |
API トークン | |
--backup-dir |
✓ | バックアップのルートディレクトリ |
--mode |
復元モード: FullReplace / Upsert / Merge(デフォルト: Upsert) |
|
--restore-files |
添付ファイルも復元するか(デフォルト: true) |
|
--dry-run |
実際には変更を行わないドライラン | |
--validate-only |
バリデーションのみ実行 | |
--force |
スキーマ検証をスキップ(要注意) |
復元モードの違い:
| モード | 動作 |
|---|---|
FullReplace |
既存レコードをすべて削除してからバックアップを挿入 |
Upsert |
レコード ID が一致すれば更新、なければ新規挿入(デフォルト) |
Merge |
レコード ID が一致すればフィールドをマージ、なければ新規挿入 |
バックアップ実行後、次のファイルとディレクトリが生成されます。
fields.jsonrecords/ディレクトリ(500件ごとに分割されたレコードファイル)
出力ディレクトリの構造例:
output/
fields.json
records/
records-00001.json
records-00002.json
...
kbackup のバックアップ処理本体は KintoneNetLibrary.Backup に委譲されています。
このリポジトリでは、CLI 入力の解釈と出力ファイルの生成を行う薄いラッパーを提供します。
fields.json は kmodel のモデル生成に利用できます。
kmodel でのモデル定義や型生成の元データとして活用可能です。
MIT License