]> git.ktnx.net Git - mobile-ledger.git/commitdiff
let SQL revision files control the transaction
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 11 Feb 2021 22:12:51 +0000 (22:12 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 18 Feb 2021 07:19:43 +0000 (07:19 +0000)
because the foreign_keys pragma can't be used inside a transaction

58 files changed:
app/src/main/java/net/ktnx/mobileledger/utils/MobileLedgerDatabase.java
app/src/main/res/raw/create_db.sql
app/src/main/res/raw/sql_0.sql
app/src/main/res/raw/sql_1.sql
app/src/main/res/raw/sql_10.sql
app/src/main/res/raw/sql_11.sql
app/src/main/res/raw/sql_12.sql
app/src/main/res/raw/sql_13.sql
app/src/main/res/raw/sql_14.sql
app/src/main/res/raw/sql_15.sql
app/src/main/res/raw/sql_16.sql
app/src/main/res/raw/sql_17.sql
app/src/main/res/raw/sql_18.sql
app/src/main/res/raw/sql_19.sql
app/src/main/res/raw/sql_2.sql
app/src/main/res/raw/sql_20.sql
app/src/main/res/raw/sql_21.sql
app/src/main/res/raw/sql_22.sql
app/src/main/res/raw/sql_23.sql
app/src/main/res/raw/sql_24.sql
app/src/main/res/raw/sql_25.sql
app/src/main/res/raw/sql_26.sql
app/src/main/res/raw/sql_27.sql
app/src/main/res/raw/sql_28.sql
app/src/main/res/raw/sql_29.sql
app/src/main/res/raw/sql_3.sql
app/src/main/res/raw/sql_30.sql
app/src/main/res/raw/sql_31.sql
app/src/main/res/raw/sql_32.sql
app/src/main/res/raw/sql_33.sql
app/src/main/res/raw/sql_34.sql
app/src/main/res/raw/sql_35.sql
app/src/main/res/raw/sql_36.sql
app/src/main/res/raw/sql_37.sql
app/src/main/res/raw/sql_38.sql
app/src/main/res/raw/sql_39.sql
app/src/main/res/raw/sql_4.sql
app/src/main/res/raw/sql_40.sql
app/src/main/res/raw/sql_41.sql
app/src/main/res/raw/sql_42.sql
app/src/main/res/raw/sql_43.sql
app/src/main/res/raw/sql_44.sql
app/src/main/res/raw/sql_45.sql
app/src/main/res/raw/sql_46.sql
app/src/main/res/raw/sql_47.sql
app/src/main/res/raw/sql_48.sql
app/src/main/res/raw/sql_49.sql
app/src/main/res/raw/sql_5.sql
app/src/main/res/raw/sql_50.sql
app/src/main/res/raw/sql_51.sql
app/src/main/res/raw/sql_52.sql
app/src/main/res/raw/sql_53.sql
app/src/main/res/raw/sql_54.sql
app/src/main/res/raw/sql_55.sql
app/src/main/res/raw/sql_6.sql
app/src/main/res/raw/sql_7.sql
app/src/main/res/raw/sql_8.sql
app/src/main/res/raw/sql_9.sql

index 32269fea612e7904b8daebade3fd2a87a47d3f24..be31ebdf0991790c33e9fd939ee147a9e93146d8 100644 (file)
@@ -83,7 +83,6 @@ public class MobileLedgerDatabase extends SQLiteOpenHelper {
         int res_id = rm.getIdentifier(rev_file, "raw", mContext.getPackageName());
         if (res_id == 0)
             throw new SQLException(String.format(Locale.US, "No resource for %s", rev_file));
-        db.beginTransaction();
         try (InputStream res = rm.openRawResource(res_id)) {
             debug("db", "Applying " + rev_file);
             InputStreamReader isr = new InputStreamReader(res);
@@ -129,14 +128,10 @@ public class MobileLedgerDatabase extends SQLiteOpenHelper {
                 throw new RuntimeException(
                         String.format("Error applying %s: EOF after continuation", rev_file));
 
-            db.setTransactionSuccessful();
         }
         catch (IOException e) {
             Log.e("db", String.format("Error opening raw resource for %s", rev_file));
             e.printStackTrace();
         }
-        finally {
-            db.endTransaction();
-        }
     }
 }
index 6b56953f3865b4a74b396082f0776b4f1afd249d..e77ac57060daa24d70435b335569ee83abac7c7e 100644 (file)
@@ -12,6 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 create table profiles(uuid varchar not null primary key, name not null, url not null, use_authentication boolean not null, auth_user varchar, auth_password varchar, order_no integer, permit_posting boolean default 0, theme integer default -1, preferred_accounts_filter varchar, future_dates integer, api_version integer, show_commodity_by_default boolean default 0, default_commodity varchar, show_comments_by_default boolean default 1, detected_version_pre_1_19 boolean, detected_version_major integer, detected_version_minor integer);
 create table accounts(profile varchar not null, name varchar not null, name_upper varchar not null, level integer not null, parent_name varchar, expanded default 1, amounts_expanded boolean default 0, generation integer default 0);
 create unique index un_accounts on accounts(profile, name);
@@ -34,4 +37,5 @@ CREATE TABLE template_accounts(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, te
 create index fk_template_accounts_template on template_accounts(template_id);
 create index fk_template_accounts_currency on template_accounts(currency);
 
+COMMIT TRANSACTION;
 -- updated to revision 55
\ No newline at end of file
index 3e4feca22896e39cb872604ba342f270e4118b45..cf9cca97b0c45fe0b684412aa3533820fe79537c 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 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);
@@ -20,3 +22,5 @@ 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);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index b5d79f9a6d3665e635a2dea26faba024f6617c87..23243c31978962e857c2f2422737efd4231a8380 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table accounts add keep boolean;
 alter table account_values add keep boolean;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 30962d41af4e87bcae33376303d56203e079b7f6..e6ceb4e37cb857042c7c9eefae6b921063b678e9 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 delete from transaction_accounts;
 delete from transactions;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index eec8c3f5f91e615908cd487e207105c55693b7be..0bf366b404479cfe22a81e3b0f39a50f1b8202b5 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create table profiles(uuid varchar not null primary key, name not null, url not null, use_authentication boolean not null, auth_user varchar, auth_password varchar);
 create unique index un_profile_name on profiles(name);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 4ddd98dc394367c132b26df51e9eece339bd8225..a9baf1153c7b7b5dac04e2549a64dbe4b6215800 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop index un_profile_name;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 9b08d7174312787979b34e5579385cffffa2625c..522eb8d9e2c687bc144c11df4db8f7aa5620fda4 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 delete from options where name='transaction_list_last_update';
 delete from options where name='last_refresh';
 alter table options add profile varchar;
@@ -35,3 +37,5 @@ create unique index un_transactions_id on transactions(id);
 create unique index un_transactions_data_hash on transactions(data_hash);
 --
 create table transaction_accounts(profile varchar not null, transaction_id integer not null, account_name varchar not null, currency varchar not null default '', amount decimal not null, constraint fk_transaction_accounts_acc foreign key(profile,account_name) references accounts(profile,account_name), constraint fk_transaction_accounts_trn foreign key(transaction_id) references transactions(id));
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 4f5ec4c860a7030380243ba40dc1c9998639ec17..ac47837e4475a931bb3cee8dd367f10a75a7c6d3 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop table transaction_accounts;
 drop table transactions;
 --
@@ -21,3 +23,5 @@ create unique index un_transactions_id on transactions(profile,id);
 create unique index un_transactions_data_hash on transactions(profile,data_hash);
 --
 create table transaction_accounts(profile varchar not null, transaction_id integer not null, account_name varchar not null, currency varchar not null default '', amount decimal not null, constraint fk_transaction_accounts_acc foreign key(profile,account_name) references accounts(profile,account_name), constraint fk_transaction_accounts_trn foreign key(profile, transaction_id) references transactions(profile,id));
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 8ce967c55d07c6ec3877c587493db6cca1c809fe..d134676c3f16a932a2a2fe6fd647693ae8b78bc6 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 delete from options where profile is null and name='last_scrape';
 create table new_options(profile varchar not null, name varchar not null, value varchar);
 
@@ -23,3 +25,5 @@ create table options(profile varchar not null, name varchar not null, value varc
 create unique index un_options on options(profile,name);
 insert into options(profile,name,value) select profile,name,value from new_options;
 drop table new_options;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 0c71dd883fa17870e4515452d59ca096c5290c3c..3bf8cc96ab00b39314125eaebf6a3a1b11fa1541 100644 (file)
@@ -13,5 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
 
 alter table profiles add order_no integer;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index cfe1bb22a3b4ae6b7a70383e6ed6bff63c10d6c4..2da2ae32428289b05aaa5b3524706c5e6ab1b734 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add permit_posting boolean default 0;
 update profiles set permit_posting = 1;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index e74471eafb446f5a3f778a0732b40352013bb011..abe720bdb042e687b818dfb25eb60d77e72c9355 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add theme integer default -1;
 update profiles set theme = -1;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 7221d57fe935e4aeec0d1956a8c9dbfcf12e4c21..d278070da769dd26d11fe2221ed0bfb46ce37a63 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table accounts add expanded default 1;
 update accounts set expanded = 1;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index e7f8041c211f15be1c9a18ac7e1d72b9c5dbe6a2..27307216272c38c0c8647eed709b91e99a7e5141 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create table description_history(description varchar not null primary key, keep boolean);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 8e2c1ecab389a9a8a4d812d2d147331ed584021a..7510b7dcba2741b41c2e43c793e8595ea63ddb97 100644 (file)
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 delete from accounts where not exists (select 1 from profiles where uuid = profile);
 delete from account_values where not exists (select 1 from profiles where uuid = profile);
 delete from transactions where not exists (select 1 from profiles where uuid = profile);
 delete from transaction_accounts where not exists (select 1 from profiles where uuid = profile);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 70602319d506e653fad05fcdc093845bcd6f7bfc..d7c08fddd710d6ef143984bf19b510fa6eeb238e 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table accounts add amounts_expanded boolean default 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 7b32f531d2a088ac1bfe2e3e073fc90617cc74c7..a1780f02bd49fbd6311bbe08562b572c7b771656 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add preferred_accounts_filter varchar;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 5ceef0d58738a131361c8da9fc8d353fddc7299f..ea3a9e85a78243647a8b97a6a3396f79855090d4 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add future_dates integer;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 2ee781720da364260f8bdbd5baf5e7ccd0e0c653..268922d7df0940f89055bbf706b72d2c4bb64b17 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add api_version integer;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index ae9bb47f8904ac783ff4f536698fa41dcb984a00..6a02fcbecaeaa84c8f1e37f78033080d83a8cbb1 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create table currencies(id integer not null primary key, name varchar not null, position varchar not null, has_gap boolean not null);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 767498367b288f137fa61a978b443ce9f0026a5a..e44ec03bcd23c4b45d685e047f95345e86e6a3c5 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table transaction_accounts add comment varchar;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 86d993f8288df882f95a1dbde7e3b573cbd68ae4..de643e487b7ef3781318d19b6eb4e626c1c4bf7b 100644 (file)
@@ -13,4 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table profiles add show_commodity_by_default boolean default 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 8ec5fb6b44905f010368a0c2b5cf3b68b4795101..f392fda10f9adc79742968e59de0677d85e02efa 100644 (file)
@@ -13,5 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
 
 alter table profiles add default_commodity varchar;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 16164b87dd47551589bac26ef0f2ebe8741d8346..a134a2251c4cccc39fe94b9172e12dfddd40c183 100644 (file)
@@ -12,4 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 create index idx_transaction_description on transactions(description);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 17ed3dbd40a9cf2de01a7b0f67a3ef7035e3dffc..7994a7aafb2748302574ba08c21281c89fb41740 100644 (file)
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table description_history add description_upper varchar;
 update description_history set description_upper = upper(description);
 alter table accounts add name_upper varchar;
 update accounts set name_upper = upper(name);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index a559673e929cffc19f84716c74df3c358ec14fba..79e142bc54922bc1b9b9f173da35504c900497d5 100644 (file)
@@ -12,4 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 delete from options where profile <> '-' and not exists (select 1 from profiles p where p.uuid=options.profile);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 49b98ba4f903643aa6b54917b9f7c5dc52b8d92f..d17eeea44e30dcb43cc9498d4fdca7eac1894362 100644 (file)
@@ -12,4 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table profiles add show_comments_by_default boolean default 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index fecf2ad0fc288effc0eb606660a10be4a29fcc0b..860b0dd402ecf62d0ccfdda0fc88dd687c1d99ca 100644 (file)
@@ -12,4 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 update profiles set show_comments_by_default = 1;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index da442f8a481fb876eef60769a7cb52bbaaee61fa..c915ce2df7c56d7b1fe083dd7842eb1e9d1a1c5b 100644 (file)
@@ -12,4 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table transactions add comment varchar;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index e03541d473ee928a934bb5dcac27a45b2dde318c..041e3cf59ef2f65f2e65adc22bea3e08395a73ff 100644 (file)
@@ -12,6 +12,9 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table transactions add year integer not null default 0;
 alter table transactions add month integer not null default 0;
 alter table transactions add day integer not null default 0;
@@ -25,3 +28,5 @@ create table transactions_2(profile varchar not null, id integer not null, data_
 insert into transactions_2(profile, id, data_hash, year, month, day, description, comment, keep) select profile, id, data_hash, year, month, day, description, comment, keep from transactions;
 drop table transactions;
 alter table transactions_2 rename to transactions;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 0a77c3eb30d48eb5b07be3204f9fa18872fa41ec..b8dc44d8c683e46d80ff07e8db3c3a004a28a81c 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 create table accounts_new(profile varchar not null, name varchar not null, name_upper varchar not null, keep boolean not null default 0, level integer not null, parent_name varchar, expanded default 1, amounts_expanded boolean default 0);
 insert into accounts_new(profile, name, name_upper, keep, level, parent_name, expanded, amounts_expanded) select profile, name, name_upper, keep, level, parent_name, expanded, amounts_expanded from accounts;
 drop table accounts;
 alter table accounts_new rename to accounts;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 378eddc7b1ba72675536e26491662be7741c63a2..a7defcb763dce7d6f94d41107b2662e9d4bcdfc5 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table accounts add generation integer default 0;
 alter table account_values add generation integer default 0;
 alter table transactions add generation integer default 0;
 alter table transaction_accounts add generation integer default 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 60b6e9309e2f3277796d83acebb2bdc6a435296c..5f57308db34a832500919ea82847ee9074cb5074 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table transaction_accounts add order_no integer not null default 0;
 update transaction_accounts set order_no = rowid;
 create unique index un_transaction_accounts_order on transaction_accounts(profile, transaction_id, order_no);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 299907f9d01291ba2fa47159765f505bcd3b7ce8..19a18bde0914cf28c63b356d339bfc9a38d3f718 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 CREATE TABLE transaction_accounts_new(profile varchar not null, transaction_id integer not null, account_name varchar not null, currency varchar not null default '', amount decimal not null, comment varchar, generation integer default 0, order_no integer not null default 0, constraint fk_transaction_accounts_acc foreign key(profile,account_name) references accounts(profile,name), constraint fk_transaction_accounts_trn foreign key(profile, transaction_id) references transactions(profile,id));
 insert into transaction_accounts_new(profile, transaction_id, account_name, currency, amount, comment, generation, order_no) select profile, transaction_id, account_name, currency, amount, comment, generation, order_no from transaction_accounts;
 drop table transaction_accounts;
 alter table transaction_accounts_new rename to transaction_accounts;
 create unique index un_transaction_accounts_order on transaction_accounts(profile, transaction_id, order_no);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 92582fac99bbbe8c1938a7244926807be941c469..4f5db2ac122127b381634f75b090b7465268ffc1 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 create table description_history_new(description varchar not null primary key, description_upper varchar, generation integer default 0);
 insert into description_history_new(description, description_upper) select description, description_upper from description_history;
 drop table description_history;
 alter table description_history_new rename to description_history;
 create unique index un_description_history on description_history(description_upper);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index e2fce1102b1b19a329eec5effa675488719a64eb..5ae73aaddb50a9db8a8adc0dcce4a58d39ebaef5 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table accounts add hidden boolean default 0;
 update accounts set hidden = 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index b2168179ef98e2ddc5fed401e7a03975294b9e64..0d6d5da2a42183639d74ba79ec08859fef15cef1 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 pragma foreign_keys=off;
+BEGIN TRANSACTION;
+
 delete from transaction_accounts where not exists (select 1 from accounts a where a.profile=transaction_accounts.profile and a.name=transaction_accounts.account_name);
 delete from transaction_accounts where not exists (select 1 from transactions t where t.profile=transaction_accounts.profile and t.id=transaction_accounts.transaction_id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index dea27a7790395b8ecb7155462b4f23d472255ab8..1c9936d38c5770a702cadee0aeb7a2f6e2be8ac1 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
+BEGIN TRANSACTION;
+
 alter table profiles add detected_version_pre_1_19 boolean;
 alter table profiles add detected_version_major integer;
 alter table profiles add detected_version_minor integer;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 729595035af8c298e45a179685f34f9214e644f0..a678599c9fd0f32ec49abef1a5e5af23471ad372 100644 (file)
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create table patterns(id integer not null primary key, name varchar not null, position integer not null, regular_expression varchar not null, transaction_description varchar, transaction_comment varchar, date_year_match_group integer, date_month_match_group integer, date_day_match_group integer);
 create unique index un_patterns_id on patterns(id);
 create table pattern_accounts(id integer not null primary key, pattern_id integer not null, acc varchar, acc_match_group integer, currency integer, currency_match_group integer, amount decimal, amount_match_group integer, comment varchar, comment_match_group integer, constraint fk_pattern_account_pattern foreign key(pattern_id) references patterns(id), constraint fk_pattern_account_currency foreign key(currency) references currencies(id));
 create unique index un_pattern_accounts on pattern_accounts(id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 60e3147b05500ad6586007b8b4868d3cab643744..fc1db99e55aed8e65538dfb308b82febfb4e500a 100644 (file)
@@ -13,5 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
 
 alter table pattern_accounts add position integer not null default 0;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index b6d1cc08d5611051c93b32a7b8f1676e97e724c7..15d54bd4e15f85112fc6012c0e048ce1effef7d7 100644 (file)
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table patterns add transaction_description_match_group short;
 alter table patterns add transaction_comment_match_group short;
 alter table patterns add date_year short;
 alter table patterns add date_month short;
 alter table patterns add date_day short;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 3220e4eada0c368402dcc63d869111550e92f445..ffdf34674e824c051c37a0be58fa558ab9aa9fc5 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop table pattern_accounts;
 drop table patterns;
 
@@ -20,3 +22,5 @@ create table patterns(id integer not null primary key, name varchar not null, po
 create unique index un_patterns_id on patterns(id);
 create table pattern_accounts(id integer not null primary key, pattern_id integer not null, position integer not null, acc varchar, acc_match_group integer, currency integer, currency_match_group integer, amount decimal, amount_match_group integer, comment varchar, comment_match_group integer, constraint fk_pattern_account_pattern foreign key(pattern_id) references patterns(id), constraint fk_pattern_account_currency foreign key(currency) references currencies(id));
 create unique index un_pattern_accounts on pattern_accounts(id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index c4f045979e88706512448d6be0565c2b8efe6bb6..031d201d9d3f64a7e309d1cd0e0f27820e25b5b4 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop table pattern_accounts;
 drop table patterns;
 
@@ -20,3 +22,5 @@ create table patterns(id integer not null primary key, name text not null, posit
 create unique index un_patterns_id on patterns(id);
 create table pattern_accounts(id integer not null primary key, pattern_id integer not null, position integer not null, acc text, acc_match_group integer, currency integer, currency_match_group integer, amount decimal, amount_match_group integer, comment text, comment_match_group integer, constraint fk_pattern_account_pattern foreign key(pattern_id) references patterns(id), constraint fk_pattern_account_currency foreign key(currency) references currencies(id));
 create unique index un_pattern_accounts on pattern_accounts(id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index e754a54f5c523b3e130e3e317209dc0bf6e95ed8..0fb4ea9a98fa3aa4b6aa7fc82b29e3b0dd3fbe7e 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop table pattern_accounts;
 drop table patterns;
 
@@ -20,3 +22,5 @@ create table patterns(id INTEGER not null primary key, name TEXT not null, posit
 create unique index un_patterns_id on patterns(id);
 create table pattern_accounts(id INTEGER not null primary key, pattern_id INTEGER not null, position INTEGER not null, acc TEXT, acc_match_group INTEGER, currency INTEGER, currency_match_group INTEGER, amount decimal, amount_match_group INTEGER, comment TEXT, comment_match_group INTEGER, constraint fk_pattern_account_pattern foreign key(pattern_id) references patterns(id), constraint fk_pattern_account_currency foreign key(currency) references currencies(id));
 create unique index un_pattern_accounts on pattern_accounts(id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index fe36bb4aa7d1752db9dcf114b799cb1fb47f1fcf..99aa27d10cbb0fa4c947d1267a0165ea73bde947 100644 (file)
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop table pattern_accounts;
 
 create table pattern_accounts(id INTEGER not null primary key, pattern_id INTEGER not null, position INTEGER not null, acc TEXT, acc_match_group INTEGER, currency INTEGER, currency_match_group INTEGER, amount REAL, amount_match_group INTEGER, comment TEXT, comment_match_group INTEGER, constraint fk_pattern_account_pattern foreign key(pattern_id) references patterns(id), constraint fk_pattern_account_currency foreign key(currency) references currencies(id));
 create unique index un_pattern_accounts on pattern_accounts(id);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 2852a8b892df1ed4ca865e6426be696774a9fa2c..549c4a48800638b6a911f2af3bf06b75fdb1987d 100644 (file)
 
 pragma foreign_keys=off;
 
+BEGIN TRANSACTION;
+
 create table currencies_new(id integer not null primary key, name varchar not null, position varchar not null, has_gap integer not null);
 insert into currencies_new(id, name, position, has_gap) select id, name, position, has_gap from currencies;
 
 drop table currencies;
 
 alter table currencies_new rename to currencies;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 84db5529963063ab9c7ffb57b7211db44953751e..b0bb044a98b0631728471de221a0c000045ba794 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table accounts add level integer;
 alter table accounts add parent varchar;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 33395f2fd7d58329672d03febfc755d322973d9b..5dce5c7f73d798b81c662a09993320a70116e612 100644 (file)
@@ -13,5 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
 
 alter table patterns add test_text text;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 1e84c56bdf870882402bfd578a028017e74ef237..9536e6849bdc3a55affed57cd78ef1462ae64a64 100644 (file)
 --
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
+
 pragma foreign_keys=off;
 
+BEGIN TRANSACTION;
+
 create table patterns_new(id INTEGER not null primary key, name TEXT not null, regular_expression TEXT not null, transaction_description TEXT, transaction_description_match_group INTEGER, transaction_comment TEXT, transaction_comment_match_group INTEGER, date_year INTEGER, date_year_match_group INTEGER, date_month INTEGER, date_month_match_group INTEGER, date_day INTEGER, date_day_match_group INTEGER);
 
 insert into patterns_new(id, name, regular_expression, transaction_description, transaction_description_match_group, transaction_comment, transaction_comment_match_group, date_year, date_year_match_group, date_month, date_month_match_group, date_day, date_day_match_group) select id, name, regular_expression, transaction_description, transaction_description_match_group, transaction_comment, transaction_comment_match_group, date_year, date_year_match_group, date_month, date_month_match_group, date_day, date_day_match_group from patterns;
@@ -22,3 +25,7 @@ drop table patterns;
 
 alter table patterns_new rename to patterns;
 create unique index un_patterns_id on patterns(id);
+
+COMMIT TRANSACTION;
+
+pragma foreign_keys = ON;
\ No newline at end of file
index 86e3cb2f7a56767d3c963e687373b7439c51eb11..0d85d687a9e1a4252c9d0e43dbc35eb95203ae66 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create index if not exists fk_pattern_accounts_pattern on pattern_accounts(pattern_id);
 create index if not exists fk_pattern_accounts_currency on pattern_accounts(currency);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 572156d30f32f06ddab488d8be7509b8f9cb3013..a541b8521e38ccfb0ee17d8d5ad0d617bab9b3d0 100644 (file)
@@ -13,5 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
 
 alter table pattern_accounts add negate_amount INTEGER;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index df6b44fcd01f3ef46ecc47ab538aa1d30ae42330..f8e13ba9885127dc9f28b2330cec2a2f5904f36d 100644 (file)
@@ -15,6 +15,8 @@
 
 -- copied from the Room migration
 
+BEGIN TRANSACTION;
+
 CREATE TABLE templates (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT NOT NULL, regular_expression TEXT NOT NULL, test_text TEXT, transaction_description TEXT, transaction_description_match_group INTEGER, transaction_comment TEXT, transaction_comment_match_group INTEGER, date_year INTEGER, date_year_match_group INTEGER, date_month INTEGER, date_month_match_group INTEGER, date_day INTEGER, date_day_match_group INTEGER);
 CREATE TABLE template_accounts (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, template_id INTEGER NOT NULL, acc TEXT, position INTEGER NOT NULL, acc_match_group INTEGER, currency INTEGER, currency_match_group INTEGER, amount REAL, amount_match_group INTEGER, comment TEXT, comment_match_group INTEGER, negate_amount INTEGER, FOREIGN KEY(template_id) REFERENCES templates(id) ON UPDATE NO ACTION ON DELETE NO ACTION , FOREIGN KEY(currency) REFERENCES currencies(id) ON UPDATE NO ACTION ON DELETE NO ACTION);
 insert into templates(id, name, regular_expression, test_text, transaction_description, transaction_description_match_group, transaction_comment, transaction_comment_match_group, date_year, date_year_match_group, date_month, date_month_match_group, date_day, date_day_match_group) select id, name, regular_expression, test_text, transaction_description, transaction_description_match_group, transaction_comment, transaction_comment_match_group, date_year, date_year_match_group, date_month, date_month_match_group, date_day, date_day_match_group from patterns;
@@ -23,3 +25,5 @@ create index fk_template_accounts_template on template_accounts(template_id);
 create index fk_template_accounts_currency on template_accounts(currency);
 drop table pattern_accounts;
 drop table patterns;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index fb77862a04f59b181af76a12a4dfc512b47dbadc..780b451ccdb2cf7673b31b0b6f49666dd243ce23 100644 (file)
@@ -14,6 +14,7 @@
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
 -- copied from the Room migration
+BEGIN TRANSACTION;
 
 CREATE TABLE template_accounts_new(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, template_id INTEGER NOT NULL, acc TEXT, position INTEGER NOT NULL, acc_match_group INTEGER, currency INTEGER, currency_match_group INTEGER, amount REAL, amount_match_group INTEGER, comment TEXT, comment_match_group INTEGER, negate_amount INTEGER, FOREIGN KEY(template_id) REFERENCES templates(id) ON UPDATE RESTRICT ON DELETE CASCADE, FOREIGN KEY(currency) REFERENCES currencies(id) ON UPDATE RESTRICT ON DELETE RESTRICT);
 insert into template_accounts_new(id, template_id, acc, position, acc_match_group, currency, currency_match_group, amount, amount_match_group, amount, amount_match_group, comment, comment_match_group, negate_amount) select id, template_id, acc, position, acc_match_group, currency, currency_match_group, amount, amount_match_group, amount, amount_match_group, comment, comment_match_group, negate_amount from template_accounts;
@@ -22,3 +23,5 @@ alter table template_accounts_new rename to template_accounts;
 
 create index fk_template_accounts_template on template_accounts(template_id);
 create index fk_template_accounts_currency on template_accounts(currency);
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 4d2a54cd5f03f25a869d03418a057fc385adcf48..dd4ff22773df0f926ec809553315cb70648c9bf4 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 drop index idx_accounts_name;
 create table accounts_tmp(name varchar not null, name_upper varchar not null primary key, hidden boolean not null default 0, level integer not null default 0, parent_name varchar);
 insert or replace into accounts_tmp(name, name_upper, hidden, level, parent_name) select name, name_upper, hidden, level, parent from accounts;
@@ -20,3 +22,5 @@ drop table accounts;
 create table accounts(name varchar not null, name_upper varchar not null primary key, hidden boolean not null default 0, level integer not null default 0, parent_name varchar, keep boolean default 1);
 insert into accounts(name, name_upper, hidden, level, parent_name) select name, name_upper, hidden, level, parent_name from accounts_tmp;
 drop table accounts_tmp;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 780e4d4d91ea5907ba5a7440f4b52ebe8a1ccaaa..299a9e7f92c6af341d0995624baa64741da2fd2e 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 create table transactions(id varchar primary key, date varchar, description varchar);
 create table transaction_accounts(transaction_id integer not null, account_name varchar not null, amount float, currency varchar, foreign key (transaction_id) references transactions(id), foreign key(account_name) references accounts(name));
+
+COMMIT TRANSACTION;
\ No newline at end of file
index b4a85e5207169a5857706b8ad55460f060de9c00..6e9ae6c550101fd6ad85013601a454c5a38c3279 100644 (file)
@@ -13,5 +13,9 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table transactions add data_hash varchar;
 delete from transactions;
+
+COMMIT TRANSACTION;
\ No newline at end of file
index 16a78a833d272d8ac064bd4706467df5c96086aa..6f290d76e232b5e0884a785e59d541531fdb80a9 100644 (file)
@@ -13,6 +13,8 @@
 -- You should have received a copy of the GNU General Public License
 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
 
+BEGIN TRANSACTION;
+
 alter table transactions add keep boolean default 1 not null;
 update transactions set keep = 1;
 create table transactions_new(id integer, date varchar, description varchar, data_hash varchar, keep boolean);
@@ -22,3 +24,5 @@ create table transactions(id integer primary key, date varchar, description varc
 create unique index un_transactions_data_hash on transactions(data_hash);
 insert into transactions(id, date, description, data_hash, keep) select id, date, description, data_hash, keep from transactions_new;
 drop table transactions_new;
+
+COMMIT TRANSACTION;
\ No newline at end of file