Skip to content

k14a/kbackup

Repository files navigation

kbackup

1. Overview(概要)

kbackup は、Kintone のレコードとフィールド情報をバックアップするための軽量 CLI ツールです。 バックアップ処理の本体は KintoneNetLibrary.Backup が担当しており、kbackup はその薄い CLI ラッパーとして動作します。

2. Requirements(動作環境)

  • .NET 10
  • Kintone API Token
  • Windows / macOS / Linux で動作します

3. Installation(インストール)

  1. リポジトリをクローンします。
    git clone https://github.com/k14a/kbackup.git
    cd kbackup
  2. ビルドします。
    dotnet build
  3. 実行します。
    dotnet run --project src/KBackup.Cli/KBackup.Cli.csproj -- backup --app-id <APP_ID> --api-token <API_TOKEN>

必要に応じて、ローカルツールとして dotnet tool から実行することも可能です。

4. Usage(使用例)

バックアップ

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 が一致すればフィールドをマージ、なければ新規挿入

5. Output(生成されるファイル)

バックアップ実行後、次のファイルとディレクトリが生成されます。

  • fields.json
  • records/ ディレクトリ(500件ごとに分割されたレコードファイル)

出力ディレクトリの構造例:

output/
  fields.json
  records/
    records-00001.json
    records-00002.json
    ...

6. How It Works(内部構造の簡単な説明)

kbackup のバックアップ処理本体は KintoneNetLibrary.Backup に委譲されています。 このリポジトリでは、CLI 入力の解釈と出力ファイルの生成を行う薄いラッパーを提供します。

7. Relation to kmodel(kmodel との連携)

fields.json は kmodel のモデル生成に利用できます。 kmodel でのモデル定義や型生成の元データとして活用可能です。

8. License(MIT)

MIT License

About

Backup/Restore from Kintone application.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages