]> git.ktnx.net Git - mobile-ledger.git/commitdiff
move DB structure initialization in a sql_0.sql script
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 8 Dec 2018 12:12:24 +0000 (12:12 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 8 Dec 2018 12:12:24 +0000 (12:12 +0000)
this avoids several "create foo if not exists" statements executed on
each start

app/src/main/java/net/ktnx/mobileledger/AccountSummary.java
app/src/main/java/net/ktnx/mobileledger/MobileLedgerDB.java
app/src/main/res/raw/sql_0.sql [new file with mode: 0644]

index 7b4d25795e3bce580b013fc90e745fa5d09648d1..82104b5eddf3ac386e187b18de15e00c566bd88b 100644 (file)
@@ -145,9 +145,7 @@ public class AccountSummary extends AppCompatActivity {
         else {
             MobileLedgerDB.setDb_filename(MobileLedgerDB.DATABASE_NAME);
         }
-        MobileLedgerDB.initDB();
-
-        MobileLedgerDB.applyRevisions(getResources(), getPackageName());
+        MobileLedgerDB.initDB(getResources(), getPackageName());
 
         account_list_last_updated = MobileLedgerDB.get_option_value("last_refresh", (long) 0);
 
index 141b4a321f5cf9d304513c99bf90bb9ba290e03a..a4a078e7eb5b501c1a33dc8853847dfafa0d5ab3 100644 (file)
@@ -25,20 +25,9 @@ class MobileLedgerDB {
         MobileLedgerDB.db_filename = db_filename;
     }
 
-    static void initDB() {
+    static void initDB(Resources rm, String pkg_name) {
         db = SQLiteDatabase.openOrCreateDatabase(db_filename, null);
-
-        db.execSQL("create table if not exists accounts(name varchar);");
-        db.execSQL("create index if not exists idx_accounts_name on accounts(name);");
-        db.execSQL("create table if not exists options(name varchar, value varchar);");
-        db.execSQL("create unique index if not exists idx_options_name on options(name);");
-        db.execSQL("create table if not exists account_values(account varchar not null, currency varchar not null, value decimal(18,2) not null);");
-        db.execSQL("create index if not exists idx_account_values_account on account_values(account);");
-        db.execSQL("create unique index if not exists un_account_values on account_values(account,currency);");
-    }
-
-    static void applyRevisions(Resources rm, String pkg_name) {
-        int cur_ver = Integer.parseInt(get_option_value(OPT_DB_REVISION, "0"));
+        int cur_ver = Integer.parseInt(get_option_value(OPT_DB_REVISION, "-1"));
 
         Log.d("db", "Current DB revision is "+String.valueOf(cur_ver));
 
diff --git a/app/src/main/res/raw/sql_0.sql b/app/src/main/res/raw/sql_0.sql
new file mode 100644 (file)
index 0000000..3d05c51
--- /dev/null
@@ -0,0 +1,7 @@
+create table if not exists accounts(name varchar);
+create index if not exists idx_accounts_name on accounts(name);
+create table if not exists options(name varchar, value varchar);
+create unique index if not exists idx_options_name on options(name);
+create table if not exists account_values(account varchar not null, currency varchar not null, value decimal(18,2) not null);
+create index if not exists idx_account_values_account on account_values(account);
+create unique index if not exists un_account_values on account_values(account,currency);