<< back to list

SQLite3が突然create/updateエラーを吐き出したら... あとで読む

このブログは、DBにSQLite3を使っているのですが、ある日突然DBへの書き込み時に以下のようなエラーが出るようになりました。

A ActiveRecord::StatementInvalid occurred in ...(中略)...:

SQLite3::SQLException: attempt to write a readonly database: ...(中略)...
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'

つい5分前までは、書き込みができていたのに、突然のエラー。
試しに、script/consoleでARオブジェクトを操作しようとしても、script/dbconsoleでSQLite3用のコンソールからカラムの操作をしようとしても、反応なし。

同じ問題で悩んでいる人がいるかもしれないので、原因と対策方法を書いておきます。

1. バイナリファイルを、手元で読み込んでみる

まずは、DBファイル側の問題なのか、それ以外の問題なのかを明らかにしたかったので、サーバーのDBファイルをローカルにダウンロード。
script/consoleも、script/dbconsoleも、きちんと動きました。

でも、ここの切り分けを素直に受け止めた(DBファイル側の問題じゃない)事こそが、悪夢の始まりでした……。

2. ローカルとサーバーの環境をチェック

Rubyのバージョンやgemでインストールしている諸々のバージョンをチェックしても、差違が全くなく。
八方手詰まりになった所で、もしかしたらと思い、サーバーとクライアント双方のSQLiteのバージョンをチェックしたところ、

サーバー ... SQLite3 3.3.6
ローカル ... SQLite3 3.6.4

という衝撃の事実が。
(さらりと書いてますが、ここに至るまでに3時間くらいかかった)

3.結論

SQLite3 3.3.6は、何らかのタイミングでdbファイルを読み書き出来なくなることがあるみたいです。
※ちなみに、僕の契約している「使えるねっと」では、初期インストールされているSQLite3のバージョンが3.3.6でした。

SQLiteを使ったアプリで、直前まで正常に動作していたのに、何故か突然DB周りでエラーが出たときは、SQLiteのマイナーバージョンアップを試してみると良いです。

Ruby, Rails, SQLite3, SQLException | comments(0) | trackbacks(0)   このエントリーを含むはてなブックマーク Yahoo!ブックマークに登録 livedoor クリップに登録 del.icio.usに登録 Google Bookmarks に追加 この記事をBuzzurlに追加 2008.11.28 Fri 19:42

COMMENTS

name : email : url :  
captcha: simple_captcha.jpg(全て大文字のアルファベットです)
画像中の文字とおなじものを入力してください。
comment:
コメントには日本語を必ず入力してください。(スパム対策です)
COMMENT

TRACKBACKS

この記事へのトラックバックURL: http://www.red-mount.com/trackback/14_b6ee4f4cc4e2cf34a47fab4a03a17cbdf50597ab

<< back to list
 

ABOUT ME

tak (Takahito Sezutsu)

コメント、トラックバックはお気軽に!

COMMENTS

  • Beanstalk - WEBで管理可能なフリーのSubversionサーバー
    LILAC (08.14)
  • CSS Nite in Ginza Vol.29に行ってきました。
    Betsy (05.14)
  • 「オリジナルの項目が見つからなかったので、エイリアス“********”は開けません。」と出て、Finderで外付けHDDが開けない時は
    poo (04.19)
  • MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
    tak (06.22)
  • 「オリジナルの項目が見つからなかったので、エイリアス“********”は開けません。」と出て、Finderで外付けHDDが開けない時は
    tak (06.22)
  • 「オリジナルの項目が見つからなかったので、エイリアス“********”は開けません。」と出て、Finderで外付けHDDが開けない時は
    ko (06.22)
  • MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
    Mac (05.06)
  • MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
    tak (03.11)
  • MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
    tama (03.11)
  • Mac版ATOK定額制(体験版)を1週間使ってみた
    tak (09.19)
フィードメーター - RED-MOUNT.COM
あわせて読みたいブログパーツ