質問: ### 前提・実現したいこと Android StudioでKotlinを使ってアプリを制作しております。 今までは **SQLiteOpenHelper**を使用してデータベース処理を行なっていたのですが、 これからは **Room**に移行しようとしております。 SQLiteOpenHelperで以前作ったデータベース(********.db)内のデータを、 Roomで作ったデータベースに移したいのですが、 どのような方法がありますでしょうか。 ### 発生している問題・エラーメッセージ SQLiteOpenHelperを使っていた時には、 あるデータベースファイルから他のデータベースファイルへ データを移動する際には ATTACH DATABASEを使っていたため、 Roomでも試してみたのですが、現状うまくいかない状態です。 (1つのトランザクションの中で、複数のデータベースを開く事がうまくできずにいるため、 ATTACH DATABASEをうまく使えずにいます) 他の方法として思いつくのは、 SELECT文などでデータを取り出し、それを一つ一つArrayなどの配列などに入れ、 一つずつ取り出して、INSERTしていくという方法なのですが、 できればテーブル内のデータを一括で移行できるような方法を探したいと考えています。 何か良い方法などありましたら、教えていただけるとありがたいです。 ### 補足情報(FW/ツールのバージョンなど) MacOS High Sierraにて制作 Android Studio 3.4.1
回答: 既存のDBをRoomでも使えるようにするには、空っぽのMigrationを行えばOKです。 ``` Room.databaseBuilder(context, MyDB::class.java, "app.db") .addMigrations(object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { // 何もしない } }) .build() ``` Migrationについては以下の公式ドキュメントを参考にしてください。