お世話になります。
csvインポートに関して質問です。
アプリID110番のデータを以下のコマンドでバックアップしたとします。
cli-kintone -a 110 -d mydomain -t ****** -b attached -e sjis > 110.csv
バックアップをリストアするために、以下のコマンドを叩きました。
cli-kintone -a 110 -d mydomain -t ****** -D -b attached -f 110.csv
この場合、以下のようなエラーが表示され、インポートが出来ませんでした。
Status: 404 Not Found
Message: 指定したレコード(id: 1536, 1537, 1538)が見つかりません。
Errors detail: (none)
csvを開いてみると、上記IDを持つレコードは存在しません。
csvをインポートする場合、$idフィールドは必ず連番でないと出来ないということなんでしょうか。
それではどうぞ、よろしくお願いいたします。
Seiji Ogawa様
お世話になっております。
cstapの江田と申します。
csv側に無い$idについてエラーが発生するという話とは合わないのですが、自分の環境で調べたことを書きます。
csv側で$idを指定してインポートした場合は、レコードの更新が行われます。
$idを指定しながらレコードの新規登録を行うことはできないようです。
kintoneのアプリ側に存在しない$idをcsv側で指定すると「指定したレコード(id: ・・・)が見つかりません。」というエラーが発生します。
そのため、インポート時の-Dオプションをやめるか、-Dオプション付きでインポートするのであれば$idを空にしたcsvデータにする必要があります。
また、-Dオプションでレコードを削除した場合、$idは削除前の続きから増えていくことになります。
$idで何かと紐づけるシステムを作っていた場合は、-Dオプションを用いる方法は望ましくないかもしれません。
更新は一部のレコードについてのみ行うこともできるようなので、csv側で$idを連番にそろえる必要はないかと思います。
江田篤史さま
コメントありがとうございます。
「-Dオプション付きでインポートするのであれば$idを空にした」
↑なるほどそういうことなのですね。そして$idは削除しても続きからということで、いわゆるよくあるRDBMSのIDと同じ動きということでしょうか。
頂いたヒントを元に、もう少し調査して見ます。
どうもありがとうございました。