1

データベースのアップグレードとバージョン管理を処理する最善の方法を見つけようとしています。

現時点では、ポイント リリースを行うときにデータベースを削除し、ユーザーをログアウトしますが、これはあまり良い経験ではありません。

誰でもこれを行うためのヒントをお勧めできますか?

4

2 に答える 2

1

データベースのバージョンは、アプリのバージョンとは無関係です。データベース スキーマがまったく変更されていない場合は、更新中にデータベースに対して何もする必要はありません。

データベース スキーマが変更された場合は、 でデータベースの更新を処理する必要がonUpgrade()ありますSQLiteOpenHelperこのメソッドは、データ ストレージ オプションのドキュメントで説明されているように、データベースのバージョンを更新してデータベースにアクセスしようとすると呼び出されます。

サード パーティのライブラリを使用してデータベースを処理している場合は、アップグレードを処理するか、同様の機能を提供する必要があります。

ここでデータベースをアップグレードするための普遍的な戦略はありません。何をするかは、アップグレード前のスキーマと新しいスキーマの外観に完全に依存します。変更内容に応じて、新しいテーブルまたは列を作成したり、テーブルまたは列を削除したり、データベース内の行を更新したり、テーブル間でデータを移動したりできます。データの移行方法について具体的な質問がある場合は、新しいスキーマと古いスキーマを説明する新しい質問を作成してください。

于 2015-06-17T14:09:42.953 に答える
1

その方法は、アプリが起動するたびに、必要に応じてデータベースをアップグレードする SQL を取得するためにサーバー上のストアド プロシージャを呼び出すルーチンを実行することです。(SQLは非常に複雑になる可能性があります。テーブルを削除し、新しい構造でそれらを再作成し、新しい値を挿入します)。データベースのバージョンをデータベース自体に保存し、新しいバージョンにアップグレードします。

onUpgrade() 呼び出しは使用しません。

于 2015-06-17T14:10:20.277 に答える