カレンダー

2017/12
     
      

広告

Twitter

記事検索

ランダムボタン

5042801

by 唐草 [2018/04/17]



 たぶん誰も気が付いていないだろうけれど、このブログのシステムが更新されてた。どこが変わったかお分かりだろうか?ぼくの脳内にのみ存在する「熱心なここのファン」でさえ、容易には気が付けない難問だ。デザインの変更ではなく、表示システムの本当に細かい仕様変更である。
 表示文字コードが、負の遺産扱いされていたEUC-JPから今のデファクトスタンダードであるUTF-8に変更された。これが正解である。ブラウザの文字エンコーディングの項目で確認してほしい。
 表示部分が変更されただけでなく、内部データもEUC-JPからUTF-8に変わっている。こちらは、絶対に誰も気が付けない変更だろう。
 変更作業は、プログラムを書いて行ったのでぼくがあくせく働いたわけではない。変換プログラムをアップして、ブラウザでアクセスしただけだ。文字コードを変換して保存するだけの単純な作業だが、件数が多いのでそれなりに時間がかかってしまった。ヤキモキしながらブラウザの読み込み中表示を眺めているのが、ぼくに課せられた唯一の仕事だった。
 数分待って作業は完了した。パッと見たところ、すべてがうまく変更されているようだった。だが、1つだけおかしなことが見つかった。
 変換前のデータベースには、4591件の記事が登録されている。しかし、変換後のデータベースには4590件の記事しか登録されていなかったのだ。つまり、1つだけ移行に失敗したということになる。
 変換はIDの重複が起こらないようだけ注意しながら右から左へとデータを移しただけなのに、なんで1つだけ変換されなかったのだろうか?さっぱり訳が分からない。
 変換後のデータをすべて破棄して、エラー表示をするように修正したプログラムを実行する。
 結果は、驚くほど単純だった。
 変換前の元データベースでIDの重複が起きていたのだ。ようするにコピー元に問題があったのだ。元データに問題があったら、いくら移行プログラムが完璧でもうまくいくわけがない。
 さらに移行プログラムを修正して4591件の移行を無事完了させた。
 ちなみに問題のあった記事は、2005年4月28日の記事。これってデータベースを使用するこのシステムを開発する前の記事である。手動でせっせと古い記事を移行した記憶があるので、その時にミスったのだろう。1日に2記事書いたのがミスの原因。まさか13年越しでミスが発覚するなんて、当時のぼくも今のぼくも夢にも思わなかった。