GenymotionのVirtual Devices(またはエミュレーター)からDBを取り出す
新規インストール用のデータを作成するために予めアプリで作成したものを取り出したので、その作業ログを残す
もちろんGenymotionだけではなく、エミュレーターでも可能です。
DBをアクセスできる場所にコピー
<database.name>は拡張子を含めた名前(例:test.db)
Genymotion 2.3
$ adb shell su -c cp /data/data/<package.name>/databases/<database.name> /sdcard/
- それ以外のバージョン
$ adb shell su 0 cp /data/data/<package.name>/databases/<database.name> /sdcard/
ローカルに保存
- コピーしたDBをローカルに保存します。
$ cd <DBを保存したいディレクトリ> $ adb pull /sdcard/<database.name>
DumpファイルをSQLファイルに変換
- dumpファイルはバイナリ形式になっているため、これをSQLファイルに変換する
$ sqlite3 <database.name> .dump > dump.sql
SQLファイルから不要な箇所を削除する
$ vim dump.sql ===削除する箇所=== PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; COMMIT;
あとは出来たファイルをassetsフォルダに入れて、SQLiteOpenHelperのonCreateなりで読み込み 一行ずつ実行すれば完了