Проблемма с установкой Электронного деканата

Проблемма с установкой Электронного деканата

by Sergey Alexeev -
Number of replies: 10

Добрый день ! Помогите новичку в данной области !

Операционная система - RHEL 6.2, СУБД - Postgresql 8.4, Moodle 2.2.x или 2.3.x(симптоматика аналогичная), ЭД - 2.4.1или 2.4.2 или 2.4.3. Ставилось все по руководствам, дополнительных действий не производилось.

После нажатия на "Установить все" (в процессе установки ЭД) выдается следующая информация(на скриншете). При просмотре базы видно, что какие то таблицы создались, какие то нет. Установка проходит неудачно и валится в одном месте независимо от версий ЭД.

Что делать ?  

Заранее благодарен. 

Attachment fdo.JPG
Sum of ratings: -
In reply to Sergey Alexeev

Re: Проблема с установкой Электронного деканата

by Vadim Tabunshchik -
Picture of Developers
  1. Уже есть версия 2.4.4. Попробуйте её установить.
  2. Не нажимайте "Установить все", устанавливайте по одному плагину.
  3. валится в одном месте. Может не хватает выделенной памяти или времени выполнения скрипта (в РНР) для нормальной инсталляции.
In reply to Vadim Tabunshchik

Re: Проблема с установкой Электронного деканата

by Sergey Alexeev -

1) Попробовал 2.4.4 - результат аналогичный.

2) По одному плагину - одни плагины ставятся, другие нет. Сообщения типа -"Во время установки плагин appointments произошла ошибка. Плагин не установлен". Включение отладочных сообщений ничего не дает.

3) Выполняется в виртуальной машине - оперативной памяти 2 Гиг, 2 ядра.

PHP - 5.3.3-3. 

Может в самом Moodle что-то надо сделать перед установкой ЭД ?

In reply to Sergey Alexeev

Re: Проблема с установкой Электронного деканата

by Виталий Лавров -
Picture of Эксперт по Moodle

Сколько в php.ini memory_limit и max_execution_time ?

PS Хорошо бы php обновить. Хотя бы на распоследнюю 5.3. Первые релизы были крайне глючные.

In reply to Виталий Лавров

Re: Проблема с установкой Электронного деканата

by Виталий Лавров -
Picture of Эксперт по Moodle

Не! Это авторы DoF кроме mysql ничего не знают и спользуют обратные апострофы для указания имен столбцов в таблице

Файл blocks/dof/block_dof.php строка 84

$todos = $DB->get_records_select('block_dof_todo',"`exdate`=0 AND `tododate`<".time()." AND `loan`<={$loan}");

Будь проклят mysql со своим уникальным sql синтаксисом!!!

И вообще нафига квотить все имена столбцов ? Убрать нафиг все обратные апострофы.

In reply to Виталий Лавров

Re: Проблема с установкой Электронного деканата

by Vadim Tabunshchik -
Picture of Developers

И вообще нафига квотить все имена столбцов

 Согласен approve

Но это ещё не всё, дальше ещё красивШе. Все плагины устанавливаются, окромя "Люди" (dof\storages\persons\). Ошибка в строке 607 файла dof\storages\departments\init.php:

return key($this->get_records_select('depth = 0 AND (status<>"deleted" OR status IS NULL)', null, 'id', 0, 1));

"deleted" воспринимался как название колонки. :shocked:

Заменил кавычки: return key($this->get_records_select("depth = 0 AND (status<>'deleted' OR status IS NULL)", null, 'id', 0, 1));

Стало нормально. Самое интересное, что ниже в строке 706 написано верно:

get_records_select(" path LIKE '".$path."/%' AND ( status <> 'deleted' OR status IS NULL)", null,'', '*', $num, 100)

Эта "болячка" прошла, нашлась другая: $limit = " LIMIT 0, 1"; (строка 268 dof\storages\config\init.php). Такой синтаксис LIMIT’а postgres не понял.

Теперь ещё косяк вылез:

Debug info: ОШИБКА: колонка "mdl_block_dof_s_persons.sortname" должна фигурировать в предложении GROUP BY или использоваться в агрегатной функции
LINE 2: ... WHERE departmentid = '1' ORDER BY sortname A...

Буду "ковырять" дальше, не зря же я postgres поставил smile))

Интересно, как эти изменения на MySQL отразятся?

2Сергей: Включайте режим отладки "для разработчика", все ошибки можно отследить.

In reply to Vadim Tabunshchik

Re: Проблема с установкой Электронного деканата

by Vadim Dvorovenko -
Picture of Developers Picture of Майнтейнер перевода

Что касается LIMIT. Эта конструкция исключительно MySQL. Потому в get_records_select есть два последних параметра, чтобы правильно сделать LIMIT для разных БД. 

Ну и вообще, раз код так сильно заточен под mysql, то либо вам стоит перевестись на mysql, либо постоянно писать разработчикам о том, что они не правы и отправить им все свои исправления.

In reply to Виталий Лавров

Re: Проблема с установкой Электронного деканата

by Vadim Dvorovenko -
Picture of Developers Picture of Майнтейнер перевода

Будь проклят mysql со своим уникальным sql синтаксисом!!!

Ну давайте не будем с больной головы на здоровую перевладывать. В mysql - апострофы, в oracle кавычки, в mysql квадратные скобки, для этого в moodle и сделана спечиальная прослойка для доступа к бд. Если программисты ей не умеют пользоваться, это уже такие программисты. И вообще, для подобных запросов лучше использовать передачу параметров в виде tododate< :todate AND loan <=:loan

In reply to Vadim Dvorovenko

Re: Проблема с установкой Электронного деканата

by Sergey Alexeev -

Так какой итог ?

Чтобы поставить ЭД на Postgres надо его весь перелопатить в части запросов к БД ?

Или есть какие другие решения ? 

А как себя в этом плане показал старый ЭД, тот который под Мудл 1.9 был ?

Подскажите пожалуйста выход далекому от програмированию на РНР и java человеку. 

In reply to Sergey Alexeev

Re: Проблема с установкой Электронного деканата

by Виталий Лавров -
Picture of Эксперт по Moodle

2 варианта - либо перейти на mysql, либо подождать пока это минное поле будет разминировано smile

In reply to Vadim Dvorovenko

Re: Проблема с установкой Электронного деканата

by Виталий Лавров -
Picture of Эксперт по Moodle

Просто пЫонеры писавшие mysql забили на стандарт sql-99 и сделали свой велосипед с квадратными колесами. Гореть им в аду! smile

На тот момент нормальны БД типа Oracle, DB2, Postgres, Ingres имена полей квотили "

С mssql все понятно - это sql несовместимый ни с кем, кроме mssql. smile