1 -- Copyright © 2021 Damyan Ivanov.
2 -- This file is part of MoLe.
3 -- MoLe is free software: you can distribute it and/or modify it
4 -- under the term of the GNU General Public License as published by
5 -- the Free Software Foundation, either version 3 of the License, or
6 -- (at your opinion), any later version.
8 -- MoLe is distributed in the hope that it will be useful,
9 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
10 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 -- GNU General Public License terms for details.
13 -- You should have received a copy of the GNU General Public License
14 -- along with MoLe. If not, see <https://www.gnu.org/licenses/>.
16 -- migrate from revision 34 to revision 40
19 create table accounts_new(
20 profile varchar not null,
21 name varchar not null,
22 name_upper varchar not null,
23 keep boolean not null default 0,
24 level integer not null,
27 amounts_expanded boolean default 0,
28 generation integer default 0);
30 insert into accounts_new(
31 profile, name, name_upper, keep, level, parent_name, expanded, amounts_expanded)
32 select profile, name, name_upper, keep, level, parent_name, expanded, amounts_expanded
37 alter table accounts_new rename to accounts;
40 -- merged in 35 --alter table accounts add generation integer default 0;
42 alter table account_values add generation integer default 0;
44 alter table transactions add generation integer default 0;
46 alter table transaction_accounts
47 add generation integer default 0,
48 add order_no integer not null default 0;
51 update transaction_accounts set order_no = rowid;
54 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);
55 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);
58 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));
59 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;
60 drop table transaction_accounts;
61 alter table transaction_accounts_new rename to transaction_accounts;
62 create unique index un_transaction_accounts_order on transaction_accounts(profile, transaction_id, order_no);
65 create table description_history_new(description varchar not null primary key, description_upper varchar, generation integer default 0);
66 insert into description_history_new(description, description_upper) select description, description_upper from description_history;
67 drop table description_history;
68 alter table description_history_new rename to description_history;
69 create unique index un_description_history on description_history(description_upper);