Здравствуйте!
Такая проблема со штатным модулем Битрикс «Обучение» или с версией MariaDB 10.5.12 (см. скриншоты):
после переезда на новый хостинг (adminvps.ru) и на MariaDB 10.5.12 при проверке системы, а именно — структуры базы данных — процесс всегда зависал на 20%, при этом со стороны хостинга была выполнена проверка самой базы и повреждений не наблюдалось, производительность превышала 30. Экспериментально, основываясь на замечаниях пользователей «Битрикс», решил удалить штатные модули Битрикс «Обучение» и «Форум», после чего повторил тестирование структуры базы данных и процесс успешно завершился, но с указанием на некоторые ошибки. Запустил «автоисправление ошибок», в результате чего их небольшая часть исправилась, но с таким сообщением:
Поскольку в базах данных я полный ноль, решил попробовать установить модули обратно без исправления ошибок вручную. Вначале вернул на место модуль «Форум»: полет нормальный — проверка системы прошла без зависаний, количество ошибок в структуре базы данных не увеличилось. Затем начал ставить модуль «Обучение», но установка завершилась ошибкой, из-за которой не получалось войти в административную часть сайта:
Полный лог ошибок могу привести по запросу.
Решил провести удаление модулей кардинально, с удалением малейших следов.
В итоге была создана абсолютно новая база данных при чистой установке CMS, без какой-либо связи с прошлыми настройками и файлами. Были установлены все штатные модули последней версии, за исключением модуля «Обучение», из-за которого раньше возникали конфликты. Было проведено тестирование «Проверка системы — Тестирование конфигурации». Ошибки отсутствовали.
Затем был установлен модуль «Обучение» и проведено повторное тестирование. По его результатам выдается сообщение:
Автоисправление не привело к устранению ошибок, оно заканчивается сообщением:
В журнале наблюдается следующее:
Понимаю, что у меня нестандартное веб-окружение («1С-Битрикс: Корпоративный портал 21.400.300», редакция «1С-Битрикс24: Интернет-магазин + CRM», CentOS 7.9, PHP 7.4.23, Apache 2.4, режим работы FastCGI (Nginx + PHP-FPM), MariaDB 10.5.12 [InnoDB]), тем не менее прошу оказать посильную помощь в устранении проблемы.
Такая проблема со штатным модулем Битрикс «Обучение» или с версией MariaDB 10.5.12 (см. скриншоты):
после переезда на новый хостинг (adminvps.ru) и на MariaDB 10.5.12 при проверке системы, а именно — структуры базы данных — процесс всегда зависал на 20%, при этом со стороны хостинга была выполнена проверка самой базы и повреждений не наблюдалось, производительность превышала 30. Экспериментально, основываясь на замечаниях пользователей «Битрикс», решил удалить штатные модули Битрикс «Обучение» и «Форум», после чего повторил тестирование структуры базы данных и процесс успешно завершился, но с указанием на некоторые ошибки. Запустил «автоисправление ошибок», в результате чего их небольшая часть исправилась, но с таким сообщением:
Цитата |
---|
Цитата: «Замечание. Автоисправление прошло успешно, но ряд полей (92) отличаются по типу, необходимо вручную их исправить на основе журнала проверки сайта» |
Поскольку в базах данных я полный ноль, решил попробовать установить модули обратно без исправления ошибок вручную. Вначале вернул на место модуль «Форум»: полет нормальный — проверка системы прошла без зависаний, количество ошибок в структуре базы данных не увеличилось. Затем начал ставить модуль «Обучение», но установка завершилась ошибкой, из-за которой не получалось войти в административную часть сайта:
Цитата |
---|
Цитата: «При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php». |
Полный лог ошибок могу привести по запросу.
Решил провести удаление модулей кардинально, с удалением малейших следов.
В итоге была создана абсолютно новая база данных при чистой установке CMS, без какой-либо связи с прошлыми настройками и файлами. Были установлены все штатные модули последней версии, за исключением модуля «Обучение», из-за которого раньше возникали конфликты. Было проведено тестирование «Проверка системы — Тестирование конфигурации». Ошибки отсутствовали.
Затем был установлен модуль «Обучение» и проведено повторное тестирование. По его результатам выдается сообщение:
Цитата |
---|
«Ошибка! Структура базы данных имеет ошибки. Всего 6, автоматически могут быть исправлены: 6. Исправить» |
Автоисправление не привело к устранению ошибок, оно заканчивается сообщением:
Цитата |
---|
«Ошибка! Mysql Query Error: CRE ATE TABLE b_learn_test( ID int(11) not null AUTO_INCREMENT, COURSE_ID int(11) not null REFERENCES b_learn_course(ID), TIMESTAMP_X timestamp not null default current_timestamp on update current_timestamp, SORT int(11) not null default '500', ACTIVE char(1) not null default 'Y', NAME varchar(255) not null, DESCRIPTION text, DESCRIPTION_TYPE char(4) not null default 'text', ATTEMPT_LIMIT int(11) not null default '0', TIME_LIMIT int(11) default '0', COMPLETED_SCORE int(11), QUESTIONS_FROM char(1) not null default 'A', QUESTIONS_FROM_ID int(11) not null default '0', QUESTIONS_AMOUNT int(11) not null default '0', RANDOM_QUESTIONS char(1) not null default 'Y', RANDOM_ANSWERS char(1) not null default 'Y', APPROVED char(1) not null default 'Y', INCLUDE_SELF_TEST char(1) not null default 'N', PASSAGE_TYPE char(1) not null default '0', PREVIOUS_TEST_ID int(11) REFERENCES b_learn_test(ID), PREVIOUS_TEST_SCORE int(11) default 0, INCORRECT_CONTROL char(1) not null default 'N', CURRENT_INDICATION int(11) not null default '0', FINAL_INDICATION int(11) not null default '0', MIN_TIME_BETWEEN_ATTEMPTS int(11) not null default '0', SHOW_ERRORS char(1) not null default 'N', NEXT_QUESTION_ON_ERROR char(1) not null default 'Y', PRIMARY KEY (ID), INDEX IX_B_LEARN_TEST1(COURSE_ID), INDEX IX_B_LEARN_TEST2(PREVIOUS_TEST_ID)) [[1005] Can't cre ate table `bx24_new`.`b_learn_test` (errno: 150 "Foreign key constraint is incorrectly formed")]» |
В журнале наблюдается следующее:
Цитата |
---|
1. Отсутствует таблица b_learn_test 2. Отсутствует таблица b_learn_attempt 3. Отсутствует таблица b_learn_test_result 4. Отсутствует таблица b_learn_gradebook 5. Отсутствует таблица b_learn_certification 6. Отсутствует таблица b_learn_test_mark |
Код |
---|
CRE ATE TABLE b_learn_test ( ID int(11) not null AUTO_INCREMENT, COURSE_ID int(11) not null REFERENCES b_learn_course(ID), TIMESTAMP_X timestamp not null default current_timestamp on update current_timestamp, SORT int(11) not null default '500', ACTIVE char(1) not null default 'Y', NAME varchar(255) not null, DESCRIPTION text, DESCRIPTION_TYPE char(4) not null default 'text', ATTEMPT_LIMIT int(11) not null default '0', TIME_LIMIT int(11) default '0', COMPLETED_SCORE int(11), QUESTIONS_FROM char(1) not null default 'A', QUESTIONS_FROM_ID int(11) not null default '0', QUESTIONS_AMOUNT int(11) not null default '0', RANDOM_QUESTIONS char(1) not null default 'Y', RANDOM_ANSWERS char(1) not null default 'Y', APPROVED char(1) not null default 'Y', INCLUDE_SELF_TEST char(1) not null default 'N', PASSAGE_TYPE char(1) not null default '0', PREVIOUS_TEST_ID int(11) REFERENCES b_learn_test(ID), PREVIOUS_TEST_SCORE int(11) default 0, INCORRECT_CONTROL char(1) not null default 'N', CURRENT_INDICATION int(11) not null default '0', FINAL_INDICATION int(11) not null default '0', MIN_TIME_BETWEEN_ATTEMPTS int(11) not null default '0', SHOW_ERRORS char(1) not null default 'N', NEXT_QUESTION_ON_ERROR char(1) not null default 'Y', PRIMARY KEY (ID), INDEX IX_B_LEARN_TEST1(COURSE_ID), INDEX IX_B_LEARN_TEST2(PREVIOUS_TEST_ID) ); CRE ATE TABLE b_learn_attempt ( ID int(11) unsigned not null AUTO_INCREMENT, TEST_ID int(11) not null REFERENCES b_learn_test(ID), STUDENT_ID int(18) not null, DATE_START datetime not null, DATE_END datetime, STATUS char(1) not null default 'B', COMPLETED char(1) not null default 'N', SCORE int default 0, MAX_SCORE int default 0, QUESTIONS int(11) not null default '0', PRIMARY KEY (ID), INDEX IX_B_LEARN_ATTEMPT1(STUDENT_ID, TEST_ID) ); CRE ATE TABLE b_learn_test_result ( ID int(11) unsigned not null AUTO_INCREMENT, ATTEMPT_ID int(11) unsigned not null REFERENCES b_learn_attempt(ID), QUESTION_ID int(11) not null REFERENCES b_learn_question(ID), RESPONSE text, POINT int not null default 0, CORRECT char(1) not null default 'N', ANSWERED char(1) not null default 'N', PRIMARY KEY (ID), INDEX IX_B_LEARN_TEST_RESULT1(ATTEMPT_ID,QUESTION_ID), INDEX IX_B_LEARN_TEST_RESULT2(QUESTION_ID, ANSWERED, CORRECT) ); CRE ATE TABLE b_learn_gradebook ( ID int(11) unsigned not null AUTO_INCREMENT, STUDENT_ID int(18) not null, TEST_ID int(11) not null REFERENCES b_learn_test(ID), RESULT int, MAX_RESULT int, ATTEMPTS int(11) not null default '1', COMPLETED char(1) not null default 'N', EXTRA_ATTEMPTS int(11) not null default '0', PRIMARY KEY (ID), UNIQUE UX_B_LEARN_GRADEBOOK1(STUDENT_ID,TEST_ID) ); CRE ATE TABLE b_learn_certification ( ID int(11) unsigned not null auto_increment, STUDENT_ID int(18) not null, COURSE_ID int(11) not null REFERENCES b_learn_course(ID), TIMESTAMP_X timestamp not null default current_timestamp on update current_timestamp, DATE_CREATE datetime, ACTIVE char(1) not null default 'Y', SORT int(11) not null default '500', FROM_ONLINE char(1) not null default 'Y', PUBLIC_PROFILE char(1) not null default 'Y', SUMMARY int(11) not null default '0', MAX_SUMMARY int(11) not null default '0', PRIMARY KEY(ID), INDEX IX_B_LEARN_CERTIFICATION1(STUDENT_ID, COURSE_ID) ); CRE ATE TABLE b_learn_test_mark ( ID int(11) not null auto_increment, TEST_ID int(11) not null REFERENCES b_learn_test (ID), SCORE int(11) not null, MARK varchar(50) not null, DESCRIPTION text null, PRIMARY KEY (ID), INDEX IX_B_LEARN_TEST_MARK1(TEST_ID)» |
Понимаю, что у меня нестандартное веб-окружение («1С-Битрикс: Корпоративный портал 21.400.300», редакция «1С-Битрикс24: Интернет-магазин + CRM», CentOS 7.9, PHP 7.4.23, Apache 2.4, режим работы FastCGI (Nginx + PHP-FPM), MariaDB 10.5.12 [InnoDB]), тем не менее прошу оказать посильную помощь в устранении проблемы.