Спасибо за стресс-тестирование. Нам такое в голову не приходило пока ;D
Сейчас придется лезть в базу-данных. Не забыть предварительно выключить РУЖЭЛЬ и сделать бекап.
DELETE FROM RujelYear2010.AI_PROGNOSIS
where ITOG_CONTAINER not in (
SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
DELETE FROM RujelYear2010.AI_COURSE_TIMEOUT
where ITOG_CONTAINER not in (
SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
DELETE FROM RujelYear2010.AI_STUDENT_TIMEOUT
where ITOG_CONTAINER not in (
SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
Если вы не вводили отсрочки к прогнозам, то достаточно первой команды.
Попробовал, вот так было дело
mysql> DELETE FROM RujelYear2010.AI_PROGNOSIS
->
-> where ITOG_CONTAINER not in (
->
-> SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
Query OK, 133 rows affected (0.00 sec)
mysql>
mysql> DELETE FROM RujelYear2010.AI_COURSE_TIMEOUT
->
-> where ITOG_CONTAINER not in (
->
-> SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> DELETE FROM RujelYear2010.AI_STUDENT_TIMEOUT
->
-> where ITOG_CONTAINER not in (
->
-> SELECT I_ID FROM RujelStatic.ITOG_CONTAINER);
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
Но все равно выдает ошибку при выборе класса. mySQL перезагружал, Ружель тоже, сервер выключал, все равно пишет
java.lang.IllegalArgumentException: Attempt to insert null into an com.webobjects.foundation.NSMutableSet.
- com.webobjects.foundation.NSMutableSet.addObject:174
[1] net.rujel.autoitog.AutoItog.currentAutoItogsForCourse:181
[2] net.rujel.autoitog.PrognosesAddOn.setCourse:116
[3] net.rujel.autoitog.PrognosesAddOn.setCourse:105
[11] net.rujel.autoitog.PrognosesAddOn.takeValueForKey:312
[16] net.rujel.ui.NotesPage.allAddOns:310
[17] net.rujel.ui.NotesPage.activeAddOns:322
[50] net.rujel.ui.PageWrapper.appendToResponse:46
[56] net.rujel.Session.appendToResponse:253
[64] net.rujel.reusables.UTF8Application.dispatchRequest:46
А как из бэкапа вернуть базу? Мне кажется, что запросы DELETE я сделал неверно, при копировании они разбились на 3 строчки, надо попробовать ещё раз.