次のシナリオがあります。アプリは、データベース バージョン 4 で顧客に公開されます。
私はいくつかのバグ修正を行い、いくつかの機能を追加しました。このプロセスは私のモデルも変更したため、データベースも変更されました。
顧客がデバイスにインストールしたデータベースのバージョンを確認し、古いデータを新しいデータベースに移行するにはどうすればよいですか? ActiveAndroid ライブラリに onUpgrade メソッドなどはありますか?
次のシナリオがあります。アプリは、データベース バージョン 4 で顧客に公開されます。
私はいくつかのバグ修正を行い、いくつかの機能を追加しました。このプロセスは私のモデルも変更したため、データベースも変更されました。
顧客がデバイスにインストールしたデータベースのバージョンを確認し、古いデータを新しいデータベースに移行するにはどうすればよいですか? ActiveAndroid ライブラリに onUpgrade メソッドなどはありますか?
ActiveAndroid のソースコードを詳しく調べたところ、解決策が見つかりました。ActiveAndroid は、アセット フォルダーにある sql-scripts を使用して、あるバージョンから別のバージョンに移行できます。
自然な並べ替えアルゴリズムを使用して、assets/migrations/ にあるすべての sql ファイルを並べ替えます。
見つかった各 SQL スクリプトは、その > oldVersion および <= newVersion の場合に実行されます
を拡張するクラスを作成することをお勧めしますSQLiteOpenHelper
。このクラスを介してデータベースを開くと、onUpgrade()
必要に応じて自動的にメソッドが呼び出されます。このメソッドのパラメーターには、データベーススキーマの新旧のバージョン番号が含まれます。
SQLiteOpenHelper を介してデータベースにアクセスし、適切なデータベースのバージョン管理を行う場合は、onUpgrade メソッドを使用してコードを実行し、データベースを更新できます。それ以外の場合は、カスタム ソリューションを実行する必要があります。