Выпуск CMS «ГИРВАС» от 08.07.2025 на этапе разработки «Воицы».
Последние изменения
- Приведение наименований переменных, методов, и свойств объектов в соответствие с правилами PSR-1;
- Приведение кода в соответствие с правилами PSR-12;
- Добавление условия IF EXISTS в условие предложения ALTER TABLE для сборщика SQL-запросов;
- Добавление чувствительности к регистру у выбираемых колонок в предложении SELECT для сборщика SQL-запросов;
- Добавлена проверка на наличие группы пользователем с таким же техническим наименованием, как и у редактируемой;
- Добавление аргумента с типом системы управления базами данных для инициализации сборщика запросов к базе данных;
- Реализован метод в классе системного ядра для корректной проверки HTTPS-соединения, включая проверку для облачных окружений и прокси;
- Реализован метод в классе системного ядра для автоматического подключения файлов (ранее подключение не было вынесено в отдельный метод);
- Реализован общий интерфейс для классов локализации системного ядра, модулей и тем системы;
- Реализация поддержки СУБД MySQL;
- Добавление псевдонима для агрегатной SQL-функции count() при определении количества записей в таблицах баз данных для адаптации под различные СУБД;
- Реализация метода получения предыдущего URL (Referrer) для класса парсера адресной строки;
- Исправлена ошибка, из-за которой сборщик фидов не мог осуществить сборку из-за наличия HTML-сущностей в описании контента;
- Замена логотипа системы в первичном шаблоне сайта на новый;
- Обновлены локализации: ru_RU, en_US;
- Рефакторинг кода системы, первичных шаблонов сайта и административной панели;
- Небольшие стилистические коррекции первичного шаблона сайта;
- Иные мелкие исправления;
Предыдущий выпуск: 0.1.36 Альфа
Адаптация старой базы данных
Следующие SQL-запросы помогут корректно адаптировать базу данных PostgreSQL, сгенерированную системой управления содержимым «ГИРВАС» до обновления 0.2.0 Воицы.
Переименование колонок
ALTER TABLE configurations RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE configurations RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries RENAME COLUMN author_id to "authorID";
ALTER TABLE entries RENAME COLUMN category_id to "categoryID";
ALTER TABLE entries RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_categories RENAME COLUMN parent_id to "parentID";
ALTER TABLE entries_categories RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_categories RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_comments RENAME COLUMN author_id to "authorID";
ALTER TABLE entries_comments RENAME COLUMN entry_id to "entryID";
ALTER TABLE entries_comments RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_comments RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE entries_samples RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE entries_samples RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE metrics RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE metrics RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE pages_static RENAME COLUMN author_id to "authorID";
ALTER TABLE pages_static RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE pages_static RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE reports RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users RENAME COLUMN password_hash to "passwordHash";
ALTER TABLE users RENAME COLUMN security_hash to "securityHash";
ALTER TABLE users RENAME COLUMN email_is_submitted to "emailIsSubmitted";
ALTER TABLE users RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users RENAME COLUMN updated_unix_timestamp to updatedUnixTimestamp;
ALTER TABLE users_groups RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_groups RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE users_registration_submits RENAME COLUMN user_id to "userID";
ALTER TABLE users_registration_submits RENAME COLUMN submit_token to "submitToken";
ALTER TABLE users_registration_submits RENAME COLUMN refusal_token to "refusalToken";
ALTER TABLE users_registration_submits RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_sessions RENAME COLUMN user_id to "userID";
ALTER TABLE users_sessions RENAME COLUMN user_ip to "userIP";
ALTER TABLE users_sessions RENAME COLUMN type_id to "typeID";
ALTER TABLE users_sessions RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE users_sessions RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
ALTER TABLE web_channels RENAME COLUMN entries_category_id to "entriesCategoryID";
ALTER TABLE web_channels RENAME COLUMN type_id to "typeID";
ALTER TABLE web_channels RENAME COLUMN created_unix_timestamp to "createdUnixTimestamp";
ALTER TABLE web_channels RENAME COLUMN updated_unix_timestamp to "updatedUnixTimestamp";
Переименование свойств JSON-объектов в метаданных
UPDATE users
SET metadata = jsonb_set(
metadata,
"{groupID}",
metadata->"group_id"
) ||
jsonb_build_object("metadata", metadata - "group_id");
UPDATE entries
SET metadata = jsonb_set(
metadata,
"{isPublish}",
metadata->"is_publish"
) ||
jsonb_build_object("metadata", metadata - "is_publish");
UPDATE entries
SET metadata = jsonb_set(
metadata,
"{previewURL}",
metadata->"preview_url"
) ||
jsonb_build_object("metadata", metadata - "preview_url");
UPDATE pages_static
SET metadata = jsonb_set(
metadata,
"{isPublish}",
metadata->"is_publish"
) ||
jsonb_build_object("metadata", metadata - "is_publish");
UPDATE pages_static
SET metadata = jsonb_set(
metadata,
"{previewURL}",
metadata->"preview_url"
) ||
jsonb_build_object("metadata", metadata - "preview_url");
UPDATE metrics
SET "data" = jsonb_set(
"data",
"{metrics}",
jsonb_set(
"data"->"metrics",
"{views}",
(
SELECT jsonb_object_agg(
view.key,
jsonb_set(
view.value,
"{URLTransfers}",
(
SELECT jsonb_agg(
jsonb_set(
transfer_elem,
array[transfer_key],
jsonb_set(
transfer_elem->transfer_key,
"{isVisitedNew}",
(transfer_elem->transfer_key)->"is_visited_new"
) - "is_visited_new"
)
)
FROM jsonb_array_elements(view.value->"url_transfers") AS transfer_elem,
jsonb_object_keys(transfer_elem) AS transfer_key
)
) - "url_transfers"
)
FROM jsonb_each("data"->"metrics"->"views") AS view
)
)
)
WHERE "data" @? "$.metrics.views..url_transfers";
Комментарии