mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-28 17:47:53 -05:00
Compare commits
1 Commits
googleAndr
...
group_db_i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70cdb18c51 |
@@ -21,11 +21,12 @@ import java.util.List;
|
|||||||
public class DBHelper extends SQLiteOpenHelper {
|
public class DBHelper extends SQLiteOpenHelper {
|
||||||
public static final String DATABASE_NAME = "Catima.db";
|
public static final String DATABASE_NAME = "Catima.db";
|
||||||
public static final int ORIGINAL_DATABASE_VERSION = 1;
|
public static final int ORIGINAL_DATABASE_VERSION = 1;
|
||||||
public static final int DATABASE_VERSION = 16;
|
public static final int DATABASE_VERSION = 17;
|
||||||
|
|
||||||
public static class LoyaltyCardDbGroups {
|
public static class LoyaltyCardDbGroups {
|
||||||
public static final String TABLE = "groups";
|
public static final String TABLE = "groups";
|
||||||
public static final String ID = "_id";
|
public static final String ID = "_id";
|
||||||
|
public static final String NAME = "name";
|
||||||
public static final String ORDER = "orderId";
|
public static final String ORDER = "orderId";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +88,8 @@ public class DBHelper extends SQLiteOpenHelper {
|
|||||||
public void onCreate(SQLiteDatabase db) {
|
public void onCreate(SQLiteDatabase db) {
|
||||||
// create table for card groups
|
// create table for card groups
|
||||||
db.execSQL("CREATE TABLE " + LoyaltyCardDbGroups.TABLE + "(" +
|
db.execSQL("CREATE TABLE " + LoyaltyCardDbGroups.TABLE + "(" +
|
||||||
LoyaltyCardDbGroups.ID + " TEXT primary key not null," +
|
LoyaltyCardDbGroups.ID + " INTEGER primary key autoincrement," +
|
||||||
|
LoyaltyCardDbGroups.NAME + " TEXT not null," +
|
||||||
LoyaltyCardDbGroups.ORDER + " INTEGER DEFAULT '0')");
|
LoyaltyCardDbGroups.ORDER + " INTEGER DEFAULT '0')");
|
||||||
|
|
||||||
// create table for cards
|
// create table for cards
|
||||||
@@ -112,7 +114,7 @@ public class DBHelper extends SQLiteOpenHelper {
|
|||||||
// create associative table for cards in groups
|
// create associative table for cards in groups
|
||||||
db.execSQL("CREATE TABLE " + LoyaltyCardDbIdsGroups.TABLE + "(" +
|
db.execSQL("CREATE TABLE " + LoyaltyCardDbIdsGroups.TABLE + "(" +
|
||||||
LoyaltyCardDbIdsGroups.cardID + " INTEGER," +
|
LoyaltyCardDbIdsGroups.cardID + " INTEGER," +
|
||||||
LoyaltyCardDbIdsGroups.groupID + " TEXT," +
|
LoyaltyCardDbIdsGroups.groupID + " INTEGER," +
|
||||||
"primary key (" + LoyaltyCardDbIdsGroups.cardID + "," + LoyaltyCardDbIdsGroups.groupID + "))");
|
"primary key (" + LoyaltyCardDbIdsGroups.cardID + "," + LoyaltyCardDbIdsGroups.groupID + "))");
|
||||||
|
|
||||||
// create FTS search table
|
// create FTS search table
|
||||||
@@ -321,6 +323,70 @@ public class DBHelper extends SQLiteOpenHelper {
|
|||||||
db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE
|
db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE
|
||||||
+ " ADD COLUMN " + LoyaltyCardDbIds.VALID_FROM + " INTEGER");
|
+ " ADD COLUMN " + LoyaltyCardDbIds.VALID_FROM + " INTEGER");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oldVersion < 17 && newVersion >= 17) {
|
||||||
|
// SQLite doesn't support modify column
|
||||||
|
// So we need to create a temp column to change the key of the group table
|
||||||
|
// https://www.sqlite.org/faq.html#q11
|
||||||
|
db.beginTransaction();
|
||||||
|
|
||||||
|
// Step 1: Migrate LoyaltyCardDbGroups to contain integer ID
|
||||||
|
db.execSQL("CREATE TEMPORARY TABLE tmp (" +
|
||||||
|
LoyaltyCardDbGroups.ID + " INTEGER primary key autoincrement," +
|
||||||
|
LoyaltyCardDbGroups.NAME + " TEXT not null," +
|
||||||
|
LoyaltyCardDbGroups.ORDER + " INTEGER DEFAULT '0')");
|
||||||
|
|
||||||
|
db.execSQL("INSERT INTO tmp (" +
|
||||||
|
LoyaltyCardDbGroups.NAME + " ," +
|
||||||
|
LoyaltyCardDbGroups.ORDER + ")" +
|
||||||
|
" SELECT " +
|
||||||
|
LoyaltyCardDbGroups.NAME + " ," +
|
||||||
|
LoyaltyCardDbGroups.ORDER +
|
||||||
|
" FROM " + LoyaltyCardDbGroups.TABLE);
|
||||||
|
|
||||||
|
db.execSQL("DROP TABLE " + LoyaltyCardDbGroups.TABLE);
|
||||||
|
|
||||||
|
db.execSQL("CREATE TABLE " + LoyaltyCardDbGroups.TABLE + "(" +
|
||||||
|
LoyaltyCardDbGroups.ID + " INTEGER primary key autoincrement," +
|
||||||
|
LoyaltyCardDbGroups.NAME + " TEXT not null," +
|
||||||
|
LoyaltyCardDbGroups.ORDER + " INTEGER DEFAULT '0')");
|
||||||
|
|
||||||
|
db.execSQL("INSERT INTO " + LoyaltyCardDbGroups.TABLE + "(" +
|
||||||
|
LoyaltyCardDbGroups.ID + " ," +
|
||||||
|
LoyaltyCardDbGroups.NAME + " ," +
|
||||||
|
LoyaltyCardDbGroups.ORDER + ")" +
|
||||||
|
" SELECT " +
|
||||||
|
LoyaltyCardDbGroups.ID + " ," +
|
||||||
|
LoyaltyCardDbGroups.NAME + " ," +
|
||||||
|
LoyaltyCardDbGroups.ORDER +
|
||||||
|
" FROM tmp");
|
||||||
|
|
||||||
|
db.execSQL("DROP TABLE tmp");
|
||||||
|
|
||||||
|
// Step 2: Migrate LoyaltyCardDbIdsGroups to link to ID
|
||||||
|
db.execSQL("CREATE TEMPORARY TABLE tmp (" +
|
||||||
|
LoyaltyCardDbIdsGroups.cardID + " INTEGER," +
|
||||||
|
LoyaltyCardDbIdsGroups.groupID + " INTEGER," +
|
||||||
|
"primary key (" + LoyaltyCardDbIdsGroups.cardID + "," + LoyaltyCardDbIdsGroups.groupID + "))");
|
||||||
|
|
||||||
|
|
||||||
|
db.execSQL("INSERT INTO tmp (" +
|
||||||
|
LoyaltyCardDbIdsGroups.cardID + " ," +
|
||||||
|
LoyaltyCardDbIdsGroups.groupID + ")" +
|
||||||
|
" SELECT " +
|
||||||
|
LoyaltyCardDbGroups.NAME + " ," +
|
||||||
|
LoyaltyCardDbGroups.ORDER +
|
||||||
|
" FROM " + LoyaltyCardDbGroups.TABLE);
|
||||||
|
|
||||||
|
//////////
|
||||||
|
db.execSQL("CREATE TABLE " + LoyaltyCardDbIdsGroups.TABLE + "(" +
|
||||||
|
LoyaltyCardDbIdsGroups.cardID + " INTEGER," +
|
||||||
|
LoyaltyCardDbIdsGroups.groupID + " INTEGER," +
|
||||||
|
"primary key (" + LoyaltyCardDbIdsGroups.cardID + "," + LoyaltyCardDbIdsGroups.groupID + "))");
|
||||||
|
|
||||||
|
db.setTransactionSuccessful();
|
||||||
|
db.endTransaction();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ContentValues generateFTSContentValues(final int id, final String store, final String note) {
|
private static ContentValues generateFTSContentValues(final int id, final String store, final String note) {
|
||||||
|
|||||||
Reference in New Issue
Block a user