.deleteRealmIfMigrationNeeded()へのフォールバック:私は何をしたいのかアンドロイドRealm.ioの移行:新しいスキーマにAndroidのRealm.ioインスタンスを移行するとき、私は私のマイグレーションの実装に移行手順を提供
RealmConfiguration config = new RealmConfiguration
.Builder(this)
.schemaVersion(SCHEMA_VERSION)
.migration(new Migration())
.build();
実際の移行コード古いスキーマバージョンの場合はdeleteRealmIfMigrationNeeded
にフォールバックしたいと考えています。
これを行う方法はありますか?私はdeleteAll()
でそれをやろうとしましたが、古いバージョンのアプリケーションからアップデートしている人たちがRealm検証エラーを受け取っているので、動作しないようです。あなたが動的モードでレルムを開いて、それのバージョンを求めることを試みることができ
final RealmConfiguration.Builder builder=new RealmConfiguration.Builder(this);
builder.schemaVersion(SCHEMA_VERSION);
if (SCHEMA_VERSION < 105) {
builder.deleteRealmIfMigrationNeeded();
} else {
builder.migration(new Migration());
}
final RealmConfiguration config = builder.build();
古いバージョンの「deleteRealmIfMigrationNeeded」に対する「フォールバック」とはどういう意味ですか?移行の要点は古いバージョンをアップグレードできることですか? –
@ChristianMelchior、私が意味することは、すべての古いバージョンの移行を書きたくないということです。このアプリでは長い伝統が残っています。最新のバージョンをいくつか使用して移行をサポートしたいだけです(将来的には移行スクリプトを最新の状態に保つ)。私たちが持っている時間枠では、古いバージョンのすべての古いバージョンの移行を記述することはできませんでした。したがって、私はちょうど私たちがdeleteRealmIfMigrationNeededをそのような場合に呼び出すかのようにデータベース全体を拭いて、新しいものに移行したいと思います。 – Juhani