2017-05-27 11 views
1

データベースをバージョン1からバージョン2にアップグレードして新しいデータを挿入すると、バージョン1のデータベースに保存されていた古いデータはすべて削除され、データベース。データベースのアップグレード中に部屋の永続ライブラリに保存されないデータベースバージョン

ルームライブラリを使用してデータベースをアップグレードする際にデータを保持する方法はありますか?

+1

)(マイグレーションクラスを提供するために、あなたの** 'を見て可能性が必要義務付けられてonUpgrade' ** DBHelperのメソッドは、これはときに呼び出されますDBバージョンをインクリメントします。多くの人がドロップテーブルを作成し、** onCreate ** **(チュートリアルからコピーしたもの)を呼び出します。 'db.execSQL(" DROP TABLE IF EXISTS "+ DATABASE_TABLE); onCreate(db); '、同様のコードがある可能性があります。 – MikeT

+0

私は従来のDBHelperを使用していません。私はRoom Persistence Libraryを使用しています**このリンクをチェックしてください** https://developer.android.com/topic/libraries/architecture/room.html** –

+1

この場合、あなたは適切なマイグレーションクラスを_Cautionとして提供していないかもしれません。必要なマイグレーションを提供しないで、ルームはデータベースを再構築します。つまり、データベース内のすべてのデータを失うことになります._問題を反映しているようです(**データベース移行**セクションで提供したリンクからの引用)。 – MikeT

答えて

1

同じリンクから解決策が見つかりました。また、マイグレーションクラスが提供されていない場合、ルームライブラリはonUpgrade()のデータを含むデータベース全体を削除し、再度データベースを作成します。

あなたはONUPGRADE上のデータを保持したい場合は、あなたが

関連する問題