問題タブ [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.
android - clearAllTables が機能しない
Android Room にはメソッド voidclearAllTables()
があり、ドキュメントによると、次のようになります。
としてこのデータベースに登録されているすべてのテーブルからすべての行を削除します
entities()
。これは、 によって生成された自動インクリメント値をリセットしません
autoGenerate()
。行を削除した後、Room は WAL チェックポイントを設定し、VACUUM を実行します。これは、データが完全に消去されたことを意味します。量がデータベース ファイル サイズのしきい値を超えると、スペースはシステムによって再利用されます。
プロジェクトで確認したところ、その呼び出し後に db にデータがないように見えますが、デバイスから *.db ファイルをプルしてsqliteビューアーで開くと、すべてのデータが存在し、テーブルがいっぱいで何もないことがわかりました。消去されました。それはどうしてですか?これは、私のアプリの潜在的な欠陥であると考えています。クリーンルームデータベースの信頼できるアプローチを提供してください
objective-c - コアデータ無効化のジャーナルモードが機能しない
コア データ アプリでジャーナル モードを無効にしたいと考えています。これはコードです:
私もこれで確認しました:
NSLog の結果は次のとおりです。
しかし、アプリを再起動すると、常にアプリケーション ディレクトリに My_App.sqlite、My_App.sqlite-shm、My_App.sqlite-wal の 3 つのファイルがすべて見つかります。
うまくいかないのはなぜですか?
android - バックアップ時の Android 9 データベース ジャーナル モード WAL の問題
アプリ内にいくつかのバックアップ/復元機能があり、Android 9 以上を使用すると問題が発生します。SQLite データベースは、古い携帯電話で使用されていた DELETE の代わりに、journal_mode WAL を使用します。私の SQLLite バージョンは 3.25.2 です
詳しくは:
プロジェクトに完全に統合された Sugar ORM を使用しています。独自のクラス (SQLiteOpenHelper を拡張する SugarDb など) を使用する Sugar ORM とクラスは読み取り専用です。
質問:
- *.db ファイルのジャーナル モードが WAL であるかどうかを確認する方法と場所は?
- SQLiteのjournal_modeがWALの場合、*.dbファイルを正しくコピー/復元するには?
- すべてのハンドヘルドで SQLite の journal_mode を WAL から DELETE に切り替える方法と場所は?