データローダへの不満
早速ここから行きます。もちろん便利なツールではあると思います。一人のポンコツユーザーとしての意見です。
ロールバックできない
おかしいデータあったら直してからやり直したいです。エラー起きちゃったやつだけ入れ直す派の人もいるかと思いますが、私は全部やり直したい派です。要はロールバックするかどうか選べるようになってほしい。
一度に一つのオブジェクトだけしか入れられない
ほぼ言いがかりですが、上と関連します。主従関係がある場合とか一度に親子で入れたいときがあります。主を入れて、Id取ってきて、Id埋めて、子を入れてってめんどくさいしミスが発生します。親レコード入れるときに20000レコード中179レコード失敗とかなったらやる気なくなります。
なんで最初のメニューまで戻るんだよ
お使いのかたはわかると思います。そこまで戻らなくていいだろ。
データローダへの日付型の投入
日付型、日付/時間型を投入するときに形式不正でエラーになったのでまとめておきます。まず基本的なルールとして、
- 年は1700年〜3999年
- 年、月、日、時、分について先頭の0は無視される
- 時間は24時間表示
- 全角数字はダメ
- 年月日と時分の間は半角スペース(全角スペースはだめ)
のようです。合ってるかどうかはわかりません。この形式にマッチするものを探す正規表現を考えてみました。正規表現REにマッチしない正規表現として^(?!.*(RE)).+$
を使えば、形式不正がチェックできると思います。すでにわかっている問題点は
- 2月29日が無条件で通ってしまう(うるう年が考慮できない)
- 9月31日とか31日がない月に31日を指定しても通ってしまう
です。2個目に関してはがんばってチェックすればできますが、そこまでやってられるかという感じでやっていません。投入前のチェックに使うくらいであれば十分かなと思っています。
日付型が受け入れ可能な形式
^0*(1[789]\d{2}|2\d{3}|3\d{3})-0*(\d|1[012])-0*(\d|[12]\d|3[01])$
日付/時間型が受け入れ可能な形式
^0*(1[789]\d{2}|2\d{3}|3\d{3})-0*(\d|1[012])-0*(\d|[12]\d|3[01])[ ]0*(\d|1\d|2[0-3]):0*(\d|[1-5]\d)$