データベースのアップグレードとバージョン管理を処理する最善の方法を見つけようとしています。
現時点では、ポイント リリースを行うときにデータベースを削除し、ユーザーをログアウトしますが、これはあまり良い経験ではありません。
誰でもこれを行うためのヒントをお勧めできますか?
データベースのアップグレードとバージョン管理を処理する最善の方法を見つけようとしています。
現時点では、ポイント リリースを行うときにデータベースを削除し、ユーザーをログアウトしますが、これはあまり良い経験ではありません。
誰でもこれを行うためのヒントをお勧めできますか?
データベースのバージョンは、アプリのバージョンとは無関係です。データベース スキーマがまったく変更されていない場合は、更新中にデータベースに対して何もする必要はありません。
データベース スキーマが変更された場合は、 でデータベースの更新を処理する必要がonUpgrade()
ありますSQLiteOpenHelper
。このメソッドは、データ ストレージ オプションのドキュメントで説明されているように、データベースのバージョンを更新してデータベースにアクセスしようとすると呼び出されます。
サード パーティのライブラリを使用してデータベースを処理している場合は、アップグレードを処理するか、同様の機能を提供する必要があります。
ここでデータベースをアップグレードするための普遍的な戦略はありません。何をするかは、アップグレード前のスキーマと新しいスキーマの外観に完全に依存します。変更内容に応じて、新しいテーブルまたは列を作成したり、テーブルまたは列を削除したり、データベース内の行を更新したり、テーブル間でデータを移動したりできます。データの移行方法について具体的な質問がある場合は、新しいスキーマと古いスキーマを説明する新しい質問を作成してください。
その方法は、アプリが起動するたびに、必要に応じてデータベースをアップグレードする SQL を取得するためにサーバー上のストアド プロシージャを呼び出すルーチンを実行することです。(SQLは非常に複雑になる可能性があります。テーブルを削除し、新しい構造でそれらを再作成し、新しい値を挿入します)。データベースのバージョンをデータベース自体に保存し、新しいバージョンにアップグレードします。
onUpgrade() 呼び出しは使用しません。