Realmの初期化 | Initialize Realm | Android

スポンサーリンク

Realm初期化、最新の方法

モバイル用データベースといえばRealmです。SQLiteより断然Realm!と私は思っています。

さて、初期化についてです。最初に一度だけ実行します。

Realm.init(getApplicationContext());
RealmConfiguration realmConfig = new RealmConfiguration.
       Builder().
       deleteRealmIfMigrationNeeded().
       build();
Realm.deleteRealm(realmConfig);
Realm.setDefaultConfiguration(realmConfig);

となります。deleteRealm(realmConfig)はもちろん最初だけです。

次から呼び出す際は、

Realm.init(getContext());
RealmConfiguration realmConfig = new RealmConfiguration.
       Builder().
       deleteRealmIfMigrationNeeded().
       build();
Realm.setDefaultConfiguration(realmConfig);

deleteRealmIfMigrationNeededは移行処理エラー時にRealmを消すという処理です。

以前の方法

RealmConfiguration realmConfig = new RealmConfiguration.
       Builder(getApplicationContext()).
       build(); //error occurs in the new Realm
Realm.deleteRealm(realmConfig);
Realm.setDefaultConfiguration(realmConfig);

という書き方でよかったのですが、新しいRealmの場合は使えません。

(Builder(Context context)はpublicではなくなっています。)

initでcontextを渡したうえでdeleteRealmIfMigrationNeededを加える方法が現行です。