Все предустановленные посты отсутствуют — отсутствуют страницы Условий использования, FAQ и Конфиденциальности

Привет снова. В моём скромном понимании я попробовал выполнить следующий запрос в Data Explorer, но не получил никаких релевантных результатов для сообщений, удалённых в категории «Staff»:

SELECT *
FROM topics
WHERE deleted_at is not NULL
AND category_id = 3 

Или даже для любой категории:

SELECT *
FROM topics
WHERE deleted_at is not NULL

Поэтому возникает вопрос: не происходит ли что-то ещё, если темы не были удалены? Есть ли другой способ обнаружить отсутствующие темы? Или, возможно, системные сообщения вообще не хранятся в таблице topics?

Отлично, что вы освоили навыки работы с Data Explorer!
Эти темы точно есть в таблице topics.

Попробуйте следующее:

SELECT id, title, deleted_at
FROM topics
Order by id
Limit 10

Вы должны получить что-то вроде этого:

PS Возможно, вам также потребуется изменить deleted_by_id

Привет, @Paul_King, вы пробовали это?

Спасибо, Натан — отличное предложение.
Однако наименьший ID темы среди удалённых тем — 20

Есть ли у вас какие-либо из пунктов 1–10? Похоже, что нет.

Возможно, стоит пересобрать сайт с нуля, а затем каким-то образом объединить базы данных. Или же поработать с PostgreSQL!

Привет, Нейтан! Да, там действительно отображается множество удалённых тем, но ни одной из предварительно созданных тем, которых не хватает в категории «Персонал».

Интересует, возможно ли вообще вмешаться в базу данных, чтобы отменить удаления, если нет никаких следов того, что отсутствующие предустановленные посты когда-либо существовали? Есть ли способ заново запустить мастер настройки на уже установленной системе, чтобы спровоцировать создание этих предустановленных постов? Могло ли мастер настройки упустить их при первой установке? (Возможно, я тогда случайно нажал «Пропустить»?)

Не исключено ли, что в то время, когда я настраивал систему, в текущей версии Discourse присутствовал баг?

Возможно ли, что если отсутствующие предустановленные посты даже не помечены как удалённые, а просто не существуют, то при восстановлении резервной копии базы данных на чистую установку Discourse эти пробелы не распространятся и ничего не перезапишут? Или же начальная база данных полностью удаляется и заменяется резервной копией со всеми её недостатками?

Ещё один вариант — выбрать tos_topic_id, guidelines_topic_id и privacy_topic_id из таблицы site_settings.

Извините, вот правильный SQL:

SELECT value
FROM site_settings
WHERE name = 'tos_topic_id'

Спасибо, Кейн.

Возможно, я делаю это неправильно, но у меня
SELECT tos_topic_id, site_settings

или (не уверен, какой из них верен, если таковой вообще есть)

SELECT tos_topic_id
FROM
site_settings

возвращает
PG::UndefinedColumn: ERROR: column “tos_topic_id” does not exist
LINE 7: SELECT tos_topic_id, site_settings

Что я трактую как отсутствие столбца ‘tos_topic_id’?

Аналогичный результат для guidelines_topic_id и privacy_topic_id

Это может помочь: How to regenerate FAQ and TOS pages?

Спасибо!! Это именно то, что я искал, но, к сожалению, для меня финальная команда
rake topics:update_static[en]
выдает ошибку — не уверен, почему и как с этим справиться.

В чём ошибка? (Если вы хотите получить помощь, всегда полезно опубликовать текст ошибки. :wink:)

@Paul_King У меня тоже возникла ошибка при запуске update_static, но моя страница FAQ вернулась!
@gerhard Ошибка следующая, и, думаю, у Пола та же проблема.

[5] pry(main)> rake topics:update_static[zh_CN]
NameError: undefined local variable or method `update_static' for main:Object

Вы запускали задачу rake в консоли Rails, что не работает. Однако при правильном запуске вы заметите, что задача rake больше не существует. :wink:

Вместо этого рекомендую использовать метод «Ручное обновление», описанный в Обновление заранее созданных категорий и тем. Я соответствующим образом отредактировал шаги в How to regenerate FAQ and TOS pages? - #2 by gerhard.

Есть ли способ заставить ссылки на Условия использования и Политику конфиденциальности в диалоге регистрации работать? Ничто из вышеперечисленного не помогло мне, хотя я могу воссоздать темы «Условия использования» и «Политика конфиденциальности», которые не связаны.

Я точно не знаю, как эти темы вообще оказались удалены. Я просто предположил, что случайно удалил их каким-то образом, когда обнаружил их отсутствие, но, судя по моим исследованиям, это даже не должно быть возможно через пользовательский интерфейс. И учитывая, что другие пользователи столкнулись с похожей проблемой, не может ли это быть связано с какой-то ошибкой?

Не знаю, чем всё закончилось для тебя, Пол, но теперь ты можешь создать собственные страницы Условий использования и Политики конфиденциальности, используя это:

https://meta.discourse.org/t/page-publishing/151971/31

Отлично! Спасибо за предупреждение, Натан.

Подтверждаю: это сработало!

Также необходимо скопировать/вставить URL-адреса, сгенерированные для опубликованных постов, в соответствующие поля в разделе Настройки/Юридическая информация, как если бы это были страницы «Условий использования» и «Политики конфиденциальности», размещённые на внешнем ресурсе. Только в этом случае ссылки на них в новом диалоговом окне регистрации будут работать. (Не совсем понятно, почему раздел «Часто задаваемые вопросы» отсутствует в диалоговом окне регистрации, но и этот URL тоже можно указать здесь — хотя неясно, для чего предназначено это поле и куда ещё может вести ссылка, если она не включена в диалоговое окно регистрации?

Это временное решение, которое может перестать работать, если сайт когда-нибудь переместится на другой URL, но пока это отличный способ хотя бы дать пользователям возможность ознакомиться с условиями использования и другими документами перед регистрацией!