状況を変更したときにDBをsqlite3のために再接続:Railsの:.sqlite3ファイルの基礎となること
私はsqlite3のDBをロードし、それをクエリのRails 3.1.3アプリを実行しています。標準的なもの。 phusionの乗客とapacheの内部で実行されます。 バージョン(GEM/1.3.5)sqlite3のある、ルビー1.9.3-p0と、sqlite3の(LIBS/binに)3.6.12
問題:
はsqlite3のファイルはそのディレクトリからロードされRailsのアプリケーションルートの外にあるとは別々の(SVN)プロセス
を介して更新することができます私は何をしたい(簡単です)5分ごとにファイルをリロードです。 しかし、5分後にRailsでDB(ファイル)を再接続できますか?私が試した何
:
my_model.rb内側:
if time_to_reload
self.connection.reconnect!
self.establish_connection
end
または
if time_to_reload
self.connection.disconnect!
self.connection.reconnect!
end
私はそれらのほぼすべての順列、これまでのところ成功してみました。
私はSQLite3::BusyException: database is locked
またはprepare called on a closed database
は、すべてのファイルハンドルを閉じて、再度開くと、ファイルへの再接続を強制的にフェイルセーフ方法はあり得ますか?
おかげで、 フランク
追記として:
1.9.3-p0-perf :006 > MyModel.connection.disconnect!
=> #<SQLite3::Database:0x0000010474f220>
1.9.3-p0-perf :007 > MyModel.connected?
=> true
1.9.3-p0-perf :008 > WAT?