マイグレーションとは
- (DBに限らず、「移行」を意味する)
- DBのマイグレーションとは、「DBの変更履歴を残していくこと」
(Gitで変更を管理するみたいなイメージ)
つまり・・・
データベースマイグレーションとは
あるDBMS(データベース管理システム)から、別のDBMSへの移行や、新しいDBMSのバージョンへのアップグレードを意味する
-
Anadroidでは(←Anadroid以外を知らないだけですが・・・)マイグレーションをしなくても、一応DBの更新は可能
ただ、マイグレーションをした方が、バグとかが起きた場合に、切り分けができるので嬉しい
また、DB構造がサーバ側に一部依存していた場合、サーバ側でのバージョンを落とした際に、合わせてDBバージョンを簡単に切り替えることもできる -
マイグレーションを使用した際は、現在の最新のDBとマイグレーションで作成した内容を比較して一つでも異なるテストで警告が出るようになる
→間違ったままアプリを動かすと、無限にループしたりするらしいので、その対策として警告が出るようになる
マイグレーションを行う時の実装
Room.databaseBuilderをしているところで、addMigrations()メソッドを使うとマイグレーションができる
-
↑逆に言うと、
Room.databaseBuilderをしているところで、addMigrations()メソッドを使っていなければ、マイグレーションをしていない
つまり、migrate関数を使って何のテーブルを弄るのかを自分で定義しない -
アプリのDBバージョンが上がっている場合、アプリ起動時にDBなどのデータの初期化が行われる
参考サイト
関連記事
└Android Studioのキャッシュ破棄─DBのキャッシュ破棄をしたい場合