Релиз LibArea (v0.4.7)

Evg Evg 17 Августа 2022

Архив сформирован, чтобы можно было протестировать следующий релиз, пока на GitHub его не слелал. Файлы на GitHub, как и в архиве, только в архиве есть папка vendor.

см. https://libarea.ru/post/939/kak-ustanovit-skript-libarea-s-gihub-bez-somposer

Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных!

~

Установка (с нуля) скрипта LibArea

Достаточно прочитать следующий пост:

https://libarea.ru/post/797/ustanovka-obnovlenie-skripta-libarea

Где написано, что необходимо скачать скрипт по адресу:

https://libarea.ru/dev/1/libarea-0.4.7.zip

залить файлы, базу, прописать данные базы в конфиг и др. Обычная установка.


По поводу обновления. Эта версия характерна тем, что внесены множественные изменения в базу. Вот они:

Изменение в базе…

Удалим в таблице items поля:

  • item_type_url
  • item_status_url
  • item_status_date
ALTER TABLE `items`
  DROP `item_type_url`,
  DROP `item_status_url`,
  DROP `item_status_date`;

Проверку URL, хранение результатов надо делать в отдельной таблице.

Далее, для единообразия изменим поля в 2 таблицах:

ALTER TABLE `facets` CHANGE `facet_add_date` `facet_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `invitations` CHANGE `add_time` `invitation_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

Будет хотя бы единообразно с таблицами постов, ответов и комментариев, что позволит едино смотреть частоту добавления.

Добавим метки: форум, портал, блог, справка (энциклопедия) — для каталога:

ALTER TABLE `items` ADD `item_is_forum` TINYINT(1) NULL DEFAULT NULL COMMENT 'The site has a forum' AFTER `item_date`, ADD `item_is_portal` TINYINT(1) NULL DEFAULT NULL COMMENT 'This is a portal' AFTER `item_is_forum`, ADD `item_is_blog` TINYINT(1) NULL DEFAULT NULL COMMENT 'This is a blog' AFTER `item_is_portal`, ADD `item_is_reference` TINYINT(1) NULL DEFAULT NULL COMMENT 'Is this a reference site' AFTER `item_is_blog`;

Ранее было в одном поле (выбор). Нам необходимо именно такое использование.

Для перестройки всего каталога:

/web/dir/all/hi-tech // дефолтный вариант
/web/dir/potral/hi-tech // порталы
/web/dir/blog/hi-tech // блоги и т.д. Включая:
/web/dir/moscow/blog/hi-tech // C GEO локацией
/web/dir/ГЕО/ТИП_САЙТА/hi-tech // Общий случай

Выполним ещё один запрос.

ALTER TABLE `items` CHANGE `item_is_soft` `item_is_soft` TINYINT(1) NULL DEFAULT NULL COMMENT 'There is a program (script)', CHANGE `item_is_github` `item_is_github` TINYINT(1) NULL DEFAULT NULL COMMENT 'The site is on GitHub';

И ещё три запроса:

1.

ALTER TABLE `items` CHANGE `item_focus_count` `item_focus_count` INT(11) NULL DEFAULT NULL, CHANGE `item_close_replies` `item_close_replies` TINYINT(1) NULL DEFAULT NULL;

2.

UPDATE `items` SET `item_is_soft` = NULL WHERE `item_is_soft` = 0;
UPDATE `items` SET `item_is_github` = NULL WHERE `item_is_github` = 0;

3.

ALTER TABLE `items` CHANGE `item_votes` `item_votes` INT(11) NOT NULL DEFAULT '0', CHANGE `item_count` `item_count` INT(11) NOT NULL DEFAULT '1', CHANGE `item_is_deleted` `item_is_deleted` TINYINT(1) NOT NULL DEFAULT '0';

Добавим просмотры:

CREATE TABLE `posts_view` (
  `view_id` int(11) NOT NULL,
  `view_post_id` int(11) DEFAULT NULL,
  `view_user_id` int(11) DEFAULT NULL,
  `view_date` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE `posts_view`
  ADD PRIMARY KEY (`view_id`),
  ADD KEY `view_user_id` (`view_user_id`),
  ADD KEY `view_post_id` (`view_post_id`);

ALTER TABLE `posts_view`
  MODIFY `view_id` int(11) NOT NULL AUTO_INCREMENT;

Добавим поле для условий присоединения к фасету (теме, категории, блогу) и условия просмотра:

ALTER TABLE `facets` ADD `facet_entry_policy` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Политика вступления' AFTER `facet_seo_title`;
ALTER TABLE `facets` ADD `facet_view_policy` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Политика просмотра (1 - после подписки)' AFTER `facet_entry_policy`;

Подправим некоторые типы полей (по умолчанию):

ALTER TABLE `facets` CHANGE `facet_merged_id` `facet_merged_id` INT(11) NOT NULL DEFAULT '0' COMMENT 'С кем слита', CHANGE `facet_tl` `facet_tl` TINYINT(1) NOT NULL DEFAULT '0', CHANGE `facet_focus_count` `facet_focus_count` INT(11) NOT NULL DEFAULT '0', CHANGE `facet_count` `facet_count` INT(11) NOT NULL DEFAULT '0';

Что дальше?

Миграция…

P.S. Если будут вопросы, пишите тут, с личку или в чате. Постараюсь помочь, если будут трудности с установкой или обновлением.

4 Ответа

  1. Yori Yori 17 Августа 2022

    Спасибо, жду, жду миграцию! Тогда будет проще обновлять.

    1. Evg Evg 17 Августа 2022

      По логике да, но как быть с теми, кто не пользуется командной строкой? опс… тут надо подумать, и не думаю, что если мы хотим учитывать всех у нас будет меньше работы. Скорей наоборот, с миграцией она прибавится, т.к. мы должны будем делать не только миграцию, но и учитывать участников, кто не может её использовать.

  1. Ryaza Ryaza 24 Августа 2022

    Что дает релиз этот для простого обывателя, не вижу информацию?!

    1. Evg Evg 24 Августа 2022 (ред.)

      Наверное надо, да, писать больше, что сделано.