3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

自分で作ったAndroidアプリのSQLiteのDDLを確認する

Posted at

個人のアプリをAndroid Architecture ComponentのRoomに変更してみようと思いました。
ただ、現状は OrmLite を利用しているので、そもそものDDL文がありません。(classへのアノテーションで表現している)
そのため、まずは現状調査のために、Android上で動作しているSQLiteのDDLを取得してみようと思います。

DBファイルを取得する

Android SQLiteのファイルをadbコマンドで取得 - Qiita に書かれている通りです。

例えば、今回のアプリでは build.gradle は下記のようになっています。

android {
    defaultConfig {
        applicationId "hm.orz.chaos114.android.slideviewer"
    }
    buildTypes {
        debug {
            applicationIdSuffix '.debug'
        }
    }
}

また、 SQLiteOpenHelper 継承のクラスが、下記のようになっていました。

public final class DatabaseHelper extends OrmLiteSqliteOpenHelper {
    private static final String DATABASE_NAME = "slide_viewer.db";
    private static final int DATABASE_VERSION = 1;
    public DatabaseHelper(Context context) {
        super(context.getApplicationContext(), DATABASE_NAME, null, DATABASE_VERSION);
    }
}

そのため、
[パッケージ名] : hm.orz.chaos114.android.slideviewer.debug
[データベース・ファイル名] : slide_viewer.db
となり、実行するコマンドは下記のようになりました。

adb shell run-as hm.orz.chaos114.android.slideviewer.debug cat databases/slide_viewer.db > app.db

DDLを取得する

sqlite3 コマンドは、Android SDKの中にあるようです。
adb コマンドなどと同様に、 ...Android/sdk/platform-tools のようなフォルダにPATHが通っていれば、そのまま実行できるはずです。
例えば、今回はCREATE文だけが欲しかったので、下記のようにしてみました。

> sqlite3 app.db .dump | grep CREATE
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE `talk` (`id` INTEGER PRIMARY KEY AUTOINCREMENT , `modifiedAt` INTEGER , `ratio` FLOAT , `url` VARCHAR );
CREATE TABLE `slide` (`id` INTEGER PRIMARY KEY AUTOINCREMENT , `original` VARCHAR , `preview` VARCHAR , `talk_id` INTEGER , `thumb` VARCHAR );
CREATE TABLE `talkmetadata` (`id` INTEGER PRIMARY KEY AUTOINCREMENT , `talk_id` INTEGER , `title` VARCHAR , `user` VARCHAR );

これを、Roomに変えたあとでも確認して、同じようになっていればOK、といった確認ができそうです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?