SUGI製作所

音楽機材やスマホアプリ開発のネタが中心です。

groonga(HTTP)の時間がずれていた場合

groongaのadmin画面でのみ確認出来るレコードの更新時間が9時間ずれていた。
時間でフィルタリングする際に正しく取って来れない。
MySQLの設定はJSTになっている。
確認したところ、groongaインストール時にJSTになっておらず、インストール後に直したらしい。
mroongaでテーブルを作成した時に確定されてしまっており、変更は不可能っぽい。
多分データを一度dumpして作り直せば大丈夫だろう。
groongaのデータ形式に変更があった場合もその方法で作り直せばよいらしい。
タイミングが無く、まだ試していないが。

[追記]
ダンプ->復元でダメだったらしい。
どうも違うっぽい。

別環境でインストールから試してみた。
DATETIMEとTIMESTAMPで試してみる。

テーブルには現在日時で保存されるのをMySQLのクライアントで確認した。
groongaのadmin画面だと9時間増えている。
シェルでgroongaを直接叩くとmysqlで見た場合と同じ日時だ。
'--filter'で指定してもその時間を元にフィルタリング出来る。

仕様なのか。
HTTPの時だけ狂うようだ。
使い方がまずいのかバグなのか。
ドキュメントを見る限り、日時はTIMESTAMP型のタイムゾーンUTCで格納すればよさげだが。
新規ならばそれでいいけど、ちょっと今回は無理げなのでバッドノウハウだけど9時間ずらして検索で対応することにした。