2016-07-07 12 views
0

もし私がpython内からsqlite3を使ってデータベースを構築すると、それはデータベースファイルを編集するプロセスと呼ばれますか?python/sqlite3 - ファイルを書き込むプロセスはどれですか?

現在、コミットされている挿入がない場合でも、データベースが閉じられていないことをシェルから認識できますか?

+0

'lsof -c python - $ database'をチェックすると、pythonプロセスがデータベースでの作業を終えたことがわかりますか? –

答えて

1

SQLiteは埋め込みデータベースなので、別のプロセスはありません。

lsofまたは類似のツールを使用して、Pythonプロセスにデータベースファイルに対するオープンハンドルがあるかどうかを確認できます。ただし、そのようなハンドルはオープンな接続に対応します。アクティブなトランザクションがあるかどうかはわかりません。

トランザクションによってDBファイルがロックされます。 lslkまたはlslocksでそれをチェックすることができます。しかし、実際にDBを使って何かをしたいのであれば、SQLite自体の同期メカニズムを使い、BEGIN EXCLUSIVEを実行しようとする方が良いかもしれません。

+0

私は、lsofがpythonの行 'conn = sqlite3.connect( 'database.db')'と 'conn.close()'の間にファイルを開いているかどうかを質問するように指定しました。 –

関連する問題