#author("2016-06-06T16:31:01+09:00","default:wikiwriter","wikiwriter")
&tag(SQLite);
*目次 [#g0f10591]
#contents
*関連ページ [#hd2a4d93]
-[[SQLite3]] 
-[[FMDB]]

*参考情報 [#ofb7a547]


*アドバンス [#p4ca26b7]

**データベースが変更されたどうかを確認 [#c0a53769]
-データベースファイルの24〜27バイトにfile change counterというのが格納されている。[[Checksum for a SQLite database? - Stack Overflow:http://stackoverflow.com/questions/4637764/checksum-for-a-sqlite-database]]によると以下のコマンドで表示することができる。
-これをsqlite3_file_change_counter.shとして保存。sqlite3_file_change_counter.sh dbfilename で実行。
#pre{{
#!/bin/sh
# linuxの場合
#od --skip-bytes 24 --read-bytes=4 -tx1  $1 | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '

# macの場合
od -j 24 -N 4 -tx1 $1 | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '
}}

**PRAGMA設定を表示する [#k3f5f549]
-[[php - With SQlite, how do you show current PRAGMA settings? - Stack Overflow:http://stackoverflow.com/questions/4526310/with-sqlite-how-do-you-show-current-pragma-settings]]によると一覧表示設定はない?
-個別には以下の方法で表示できる。
#pre{{
sqlite> pragma synchronous;
2
sqlite>
}}
*トラブルシューティング [#v42b934b]

**マルチプロセスの書き込み、読み込みってどうなってる? [#jcdab392]
-マルチプロセス/マルチスレッドに対応しているはず…
-しかし種々の管理ツールでsqliteファイルを開いておき、その間Railsのdb:seedでデータを変更すると検知されないことが多い。特にdb:seedでデータを増やしたあと、db:resetしても過去データが読み込まれてしまう。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS