Релиз LibArea (v0.4.7)

Архив сформирован, чтобы можно было протестировать следующий релиз, пока на 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. Спасибо, жду, жду миграцию! Тогда будет проще обновлять.

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

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

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