DEV: Некоторые работы, сайт может быть недоступен некоторое время

Evg Evg 30 Июля 2022 (ред)

Что меняется? Tagify внес некоторые изменения. Обновим до v4.14.1. Далее обновим редактор. И потихоньку начнем модернизировать базу данных. Не так кардинально, как хотел, но некоторые изменения всё же будут.

Пока ничего не меняем!

Это нужно тут для тестирования на этом сайте и как балванка далее.

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

Удалим в таблице 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';

Продолжение следует…

4 Ответа

  1. German German 30 Июля 2022 (ред.)

    А что с Tagify, что там за изменения?

    1. Evg Evg 30 Июля 2022 (ред.)

      Вот, как от библиотек зависеть. Обновил, проблемы, пришлось переписать слегка. 2 релиза пропустил, и вот результат. Вроде обновил тут. Обкатаем сперва на этом сайте.

  1. German German 31 Июля 2022 (ред.)

    Скоро будет добавлена таблица с регионами? И нет таблицы для проверки доступности сайта.

    1. Evg Evg 31 Июля 2022 (ред.)

      Добавим, может в этом релизе, посмотрим.