【Swift・iOS開発】Realmのマイグレーションでカラムを追加する方法(エラー解消)【Migration】

SwiftでiOS開発をする際にローカルのデータベースとしてRealmを採用しています。

Realmを使っていると、Schemaの構造が変更されるたびにマイグレーションを行わないとアプリがクラッシュしてしまいます。

今回は、Realmの公式サイト通りにマイグレーションを実行したのですが、うまくいかなかったため、その解消法を紹介します。

やりたかったこと

上記のあらかじめ定義してあるスキーマに

【@objc dynamic var category : Int = 0】

を追加します。

既にDoneTaskモデルのデータがRealmに登録されている場合、安易に

としてしまうと、エラーが発生します。

というのも、Realmではデータ構造を変更するときはMigration処理をいれなければならないからです。

Migration(公式)

https://realm.io/docs/swift/latest/#migrations

こちらのRealmの公式サイトに書いてあるマイグレーション方法を実行すれば、すぐにできるじゃん!!

と思い、

と公式サイトのソースをそのまま、【application(application:didFinishLaunchingWithOptions:)】内で実行したのですが、マイグレーションをしてくださいというエラーが発生してうまくデータベースを作成できませんでした。

Migration(成功した方法)

【config.deleteRealmIfMigrationNeeded = true】

これを追加して、上記の書き方に変更したら、うまくマイグレーションが出来ました!

まだ、アプリ制作、初心者ですが、なんかしらアプリを作ってリリースしてみたいと思います笑

ABOUTこの記事をかいた人

新卒ノマドエンジニアとして独立し、半年で月収100万円を達成する。フリーランスのエンジニアとして活動しながら、事務所を売却(バイアウト)したり、Youtuber(最高月間視聴回数109万回、チャンネル登録者1万人)をしたり、Openrecの公式配信者としてゲーム生実況をしたり、ベンチャー企業のCOOをしたり、パラレルキャリアを歩んでいる。 2019年にミニマムライフコストを不労所得で稼げるようになったため、いまは好きなことだけ仕事にしています。