11

バックグラウンドで実行される SQLite と php アプリケーションを使用しています。(Ctrl-c) を使用してアプリケーションをブロックしましたが、database.sqlite と database.sqlite-journal があることに気付きました。

現時点では、データベースを危険にさらすことなく -journal ファイルを削除するにはどうすればよいですか?

ありがとうございました!

PS SQLite バージョン 3.7.9

編集:

-rw-r--r--. 1 damiano damiano  51M  8 mar 18.15 test.sqlite2
-rw-r--r--. 1 damiano damiano 2,6K  8 mar 18.15 test.sqlite2-journal
[damiano@localhost backup]$ sqlite3 test.sqlite2
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 
[damiano@localhost backup]$ ls -lh
-rw-r--r--. 1 damiano damiano  51M  8 mar 18.15 test.sqlite2
-rw-r--r--. 1 damiano damiano 2,6K  8 mar 18.15 test.sqlite2-journal
[damiano@localhost backup]$ 
4

2 に答える 2

14

次のコマンドを実行します。

sqlite3 test.sqlite2 vacuum

データベースを可能な限り小さくし、可能な未処理のトランザクションまたはロールバックを-journalファイルに適用します (そして処理中に削除します)。実際には、何かを行う他のトランザクションを実行できます (ただし、単純に接続/切断するだけでは不十分です) が、vacuum が最も簡単な方法のようです。

于 2013-03-09T05:11:00.320 に答える
1

データベースを開くだけです(プログラムまたはsqlite3コマンドラインツールを使用)。SQLiteは、中断されたトランザクションの変更をロールバックし、その後ジャーナルを削除します。

于 2013-03-08T18:30:25.690 に答える