Hi Robin! So you agree with me that Appendix F ("Resetting the Koha Database") of current (v3.16) manual is wrong? 2014-06-02 20:21 GMT-03:00 Robin Sheat <robin@catalyst.net.nz>:
Pablo Bianchi schreef op ma 02-06-2014 om 14:33 [-0300]:
Am I right? This could be risky, having side effects?
This could have nasty side-effects.
By turning off the constraint checks, you're not going to have any messages telling you reasons why you shouldn't do what you're doing. For example, circulation history, serial subscriptions, reserves, and anything else that links with biblios and/or items aren't going to be cleared. This means that you'll have entries in them pointing to things that don't exist.
Problems that we can avoid just with *DELETE FROM biblio*?
Some better solutions might be to: * Do 'DELETE FROM table;' and then reset the auto numbering back to 1, something like 'ALTER TABLE table AUTO INCREMENT=1;' This'll ensure that things that should be deleted via constraints will be, or it won't let you do it. Also ensure that things that aren't constraint-linked are deleted (I think old_issues is one of these.)
Despite the autoincrement issue, the *DELETE FROM biblio* way wasn't working for me. Now I'm not being able to reproduce the error, but I remember was very similar than with truncate, about *foreign key constraint* *.* I wonder why with -d option of bulkmarcimport.pl I had similar problems than with TRUNCATE, throw to stderr something like: *#1701 - Cannot truncate a table referenced in a foreign key constraint
(`koha_MyInstance`.`aqorders`, CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `koha_MyInstance`.`biblio` (`biblionumber`))*
What we can expect just taking a look to the source code: *if ($delete) {* * if ($biblios){* * print "deleting biblios\n";* * $dbh->do("truncate biblio");* * $dbh->do("truncate biblioitems");* * $dbh->do("truncate items");* * } else {* * print "deleting authorities\n";* * $dbh->do("truncate auth_header");* * }* * $dbh->do("truncate zebraqueue");* *}* If this way is the right one, considering constraint checks, I can't see why we can't use it. Perhaps we can set up something differently in my.cnf... Regards, Pablo