Dear all, thanks for all your comments. It helped me to migrate the database into a proper state.
>If you have a file holding the original transactions, then you should be > able to import them twice. Once to reverse the transactions original > entry. The second time to get them entered correctly. *@Stephen, *I was playing with the export-import function (to a CSV) but did not succeed. Gnucash crashed during import of transaction-CSV file with SIGABRT and error "Too many root sets. Aborted". There is a backtrace. Not sure whether it is useful: ========= #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff686f537 in __GI_abort () at abort.c:79 #2 0x00007ffff6144158 in () at /usr/lib/x86_64-linux-gnu/libgc.so.1 #3 0x00007ffff6144191 in GC_add_roots () at /usr/lib/x86_64-linux-gnu/libgc.so.1 #4 0x00007ffff7db73f3 in () at /usr/lib/x86_64-linux-gnu/libguile-3.0.so.1 #5 0x00007ffff7d8b639 in () at /usr/lib/x86_64-linux-gnu/libguile-3.0.so.1 #6 0x00007ffff7e05bfd in scm_c_catch () at /usr/lib/x86_64-linux-gnu/libguile-3.0.so.1 #7 0x00007ffff7db6065 in () at /usr/lib/x86_64-linux-gnu/libguile-3.0.so.1 #8 0x00007ffff7db6234 in scm_primitive_load_path () at /usr/lib/x86_64-linux-gnu/libguile-3.0.so.1 #9 0x00007ffff6fc99ac in gnc_exp_parser_real_init (addPredefined=addPredefined@entry=0) at ./libgnucash/app-utils/gnc-exp-parser.c:85 #10 0x00007ffff6fc9d7e in gnc_exp_parser_parse_separate_vars Python Exception <class 'gdb.error'> There is no member named keys.: (expression=expression@entry=0x7fffffffbcd0 "1.0000", value_p=value_p@entry=0x7fffffffbbb0, error_loc_p=error_loc_p@entry=0x7fffffffbb98, varHash=varHash@entry=0x55555676b360) at ./libgnucash/app-utils/gnc-exp-parser.c:516 ========= gnucash version is 4.4 and it looks like the crash comes from the parser [1]. scm_primitive_load_path(scm_from_utf8_string("gnucash/app-utils/fin")); I did not investigate it further. I can file a bug report if it does not exist yet. [1] https://sources.debian.org/src/gnucash/1:4.4-1/libgnucash/app-utils/gnc-exp-parser.c/#L85 > one option you have is to go through each transaction in the > register, by hand, and reverse each split of each transaction by putting > a "-" character in front of the amount. *@Jim*, thanks for a very useful tip! It really helped to fix the database relatively quickly! I employed this trick in a semi-automatic way. What was necessary is the following combination of keypresses: *-key Downkey Left* It needed to be repeated many times, for each transaction. I have written a small bash script (I am using Linux), which generated this combination of keypresses. With its help I could fire about 5000 combinations just in one second. ============= #!/bin/bash sleep 1 for i in $(seq "$1") do xte 'str -' && xte 'key Down' && xte 'key Left' done ============= So the database is fixed. Thanks all for the help! Best regards Anton _______________________________________________ gnucash-user mailing list gnucash-user@gnucash.org To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information. ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.