SQLiteMaster

Additional

Language
Java
Version
N/A
Created
Oct 8, 2013
Updated
Feb 27, 2015 (Retired)
Owner
Base (futuresimple)
Contributors
Jerzy Chałupski (chalup)
bartoszfilipowicz
2
Activity
Badge
Generate
Download
Source code

Blurb

DEPRECATED

This library was incorporated into android-schema-utils library.

SQLiteMaster

Android library for getting existing db schema information from sqlite_master table.

Basic usage

You can use the schema information in your SQLiteOpenHelper's onCreate and onUpgrade to remove some boilerplate code. Compare:

db.execSQL("DROP TRIGGER IF EXISTS trigger_a");
db.execSQL("DROP TRIGGER IF EXISTS trigger_b");
db.execSQL("DROP TRIGGER IF EXISTS trigger_c");
// ...
db.execSQL("DROP TRIGGER IF EXISTS trigger_z");

With:

SQLiteMaster.dropTriggers(db);

You can perform similar operations with views, tables and indexes, or you can access the full schema information using getSQLiteSchemaParts(SQLiteDatabase db, SQLiteSchemaPartType partType) or getSQLiteSchemaParts(SQLiteDatabase db), which return the list of SQLiteSchemaPart objects:

public class SQLiteSchemaPart {
  public final String name;
  public final String sql;
  public final String type;
}

What you do with that information is completely up to you.

Building

This is standard maven project. To build it just execute:

mvn clean package

in directory with pom.xml.

Is it safe to use?

Our tests indicate that there are no issues whatsoever on API level 8+ (Android 2.2). We haven't tested earlier versions, so consider yourself warned (and please let us know if you confirm it works on lower API levels!).

Todo

  • Documentation
  • Unit tests

License

Copyright (C) 2013 Jerzy Chalupski

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.