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