Вот один случай, который я не могу решить, несмотря на множество безупречных установок и миграций Discourse.
Предыстория:
Discourse работал стабильно в контейнере Docker, и мы разбирались с некоторыми нюансами базы данных PostgreSQL.
Проблема возникла, когда нас не устроили результаты пересборки сырых постов (re-baking raw posts), и ничего не работало по плану. Тогда мы решили удалить базу данных PostgreSQL и создать её заново, но приложение продолжало выдавать различные ошибки прав доступа и т. д.
Затем мы решили «идти до конца» и в стиле «а чёрт с ним» уничтожить всё; мы зашли в PostgreSQL (зная, что это может плохо закончиться, но желая попробовать) и удалили все темы и посты из БД (DELETE FROM topics; DELETE FROM posts;). Это отчасти сработало, но нас не устроили результаты (эксперимент окончен), поэтому мы решили пересобрать Discourse с нуля, переместив старый каталог /var/discourse в сторону и загрузив свежую версию из git.
Проблема
Когда мы собирали совершенно новый проект из git, всё работало нормально (процесс сборки), вплоть до момента, когда мы перешли на сайт для создания входа администратора.
При попытке войти в админку для новой установки мы увидели старый сайт, который мы уничтожили! Это стало сюрпризом.
Тогда мы решили зайти в это новое приложение и попробовать удалить все таблицы Discourse из БД, что мы и сделали; но, к нашему удивлению, при повторной сборке приложения это оказался не новый сайт, а тот же сломанный сайт, о котором речь выше.
Поэтому мы удалили все каталоги /var/*discourse* и все образы Docker, полагая, что это будет полностью чисто, и начали заново: загрузили код из git в /var/discourse и собрали его, думая, что начинаем с абсолютного нуля; но, сюрприз… старый сайт всё ещё там.
Думая: «Как это возможно»…??
Мы выполнили команду ps aux | grep postgres вне контейнера Docker и обнаружили, что PostgreSQL работает вне контейнера (что стало сюрпризом, так как мы ошибочно полагали, что установка Discourse через Docker происходит полностью внутри контейнера); затем мы попытались найти, где можно провести очистку, но безуспешно.
Мы искали так долго, что ссылки в Google уже стали фиолетовыми, перепробовали многое… но нам не удаётся получить чистую установку Discourse.
Поскольку, возможно, мы что-то упустили, мы взяли новый сервер, на котором Discourse никогда не устанавливался, установили Discourse с нуля, и всё заработало безупречно, как обычно (на другом сервере).
Вопрос
Мой вопрос, думаю, таков: когда установка полностью пошла наперекосяк (любыми путями), как вернуть сервер, включая PostgreSQL, в исходное состояние («ground zero»), чтобы эта проблема исчезла и мы могли запустить совершенно новую чистую установку?
Извините за такой длинный пост, когда, возможно, одного Вопроса хватило бы для получения помощи.
Спасибо.