Я хочу загрузить эту резервную копию на локальный инстанс, который является свежей установкой версии Discourse 3.4.0.beta1-dev 2b577950af5b24ed0d32eecc4ab6475619998fba.
Вот лог, есть ли какие-либо предложения по обходному пути?
[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] ERROR: function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
[2024-08-03 16:45:29] EXCEPTION: psql failed: ERROR: function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
У меня не получилось, проблема заключалась в том, что плагин Post Voting Plugin не был установлен. Интересно, что он не был включён на основном сайте (просто установлен по умолчанию), но, полагаю, этого хватило, чтобы вызвать ошибку. Спасибо.
Я получаю ту же ошибку на тестовом экземпляре (где я только что обновился до pg16, чтобы получить последнюю версию pgvector, из-за которой ранее не удавалось выполнить восстановление), который я только что обновил через git pull.
Я добавил как голосование за посты, так и голосование за темы (голосование за темы было в исходном репозитории).
Мой первый порыв был выполнить:
DROP table discourse_voting_category_settings;
Но затем мне пришлось добавить CASCADE, и я передумал, решив вместо этого выполнить восстановление на тестовом сервере.
На тестовом сайте при попытке восстановить ту же базу данных я получаю следующее:
ERROR: type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR: type "hotlinked_media_status" already exists
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
Кажется, это другое. Я забыл об этом за последние три недели, но с тех пор у нас было несколько случаев, когда резервные копии не восстанавливались, потому что плагин голосования за посты не был установлен. Так что это точно имеет место.
Но hotlinked_media_status — это основная таблица из 2022 года… значит, это что-то другое.
Что ж, я убедился, что в тестовом окружении есть все те же плагины, что и на продакшене, и восстановил там резервную копию!
Но на стенде (по какой-то причине там отсутствует плагин аутентификации Microsoft, но ведь не в этом же дело?!?!?!) всё ещё сохраняется проблема: EXCEPTION: psql failed: ERROR: type "hotlinked_media_status" already exists.
Но если бы я только поискал:
Кажется, что-то похожее уже было исправлено однажды…