問題タブ [sqlite-journal-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1856 参照

android - clearAllTables が機能しない

Android Room にはメソッド voidclearAllTables()があり、ドキュメントによると、次のようになります。

としてこのデータベースに登録されているすべてのテーブルからすべての行を削除しますentities()

これは、 によって生成された自動インクリメント値をリセットしませんautoGenerate()

行を削除した後、Room は WAL チェックポイントを設定し、VACUUM を実行します。これは、データが完全に消去されたことを意味します。量がデータベース ファイル サイズのしきい値を超えると、スペースはシステムによって再利用されます。

プロジェクトで確認したところ、その呼び出し後に db にデータがないように見えますが、デバイスから *.db ファイルをプルしてsqliteビューアーで開くと、すべてのデータが存在し、テーブルがいっぱいで何もないことがわかりました。消去されました。それはどうしてですか?これは、私のアプリの潜在的な欠陥であると考えています。クリーンルームデータベースの信頼できるアプローチを提供してください

0 投票する
0 に答える
248 参照

objective-c - コアデータ無効化のジャーナルモードが機能しない

コア データ アプリでジャーナル モードを無効にしたいと考えています。これはコードです:

私もこれで確認しました:

NSLog の結果は次のとおりです。

しかし、アプリを再起動すると、常にアプリケーション ディレクトリに My_App.sqlite、My_App.sqlite-shm、My_App.sqlite-wal の 3 つのファイルがすべて見つかります。

うまくいかないのはなぜですか?

0 投票する
2 に答える
353 参照

android - バックアップ時の Android 9 データベース ジャーナル モード WAL の問題

アプリ内にいくつかのバックアップ/復元機能があり、Android 9 以上を使用すると問題が発生します。SQLite データベースは、古い携帯電話で使用されていた DELETE の代わりに、journal_mode WAL を使用します。私の SQLLite バージョンは 3.25.2 です

詳しくは:

プロジェクトに完全に統合された Sugar ORM を使用しています。独自のクラス (SQLiteOpenHelper を拡張する SugarDb など) を使用する Sugar ORM とクラスは読み取り専用です。

質問:

  1. *.db ファイルのジャーナル モードが WAL であるかどうかを確認する方法と場所は?
  2. SQLiteのjournal_modeがWALの場合、*.dbファイルを正しくコピー/復元するには?
  3. すべてのハンドヘルドで SQLite の journal_mode を WAL から DELETE に切り替える方法と場所は?