У меня была та же проблема — и для запуска этого скрипта потребовалась небольшая помощь с ask.discourse.com, так как для администраторов без глубоких знаний это не так уж просто!
Вот краткая сводка для остальных:
Если вы столкнулись с этим при стандартной установке через Docker, вот как на самом деле запустить указанный выше скрипт.
Откройте оболочку и запустите psql.
-
Один контейнер:
cd /var/discourse ./launcher start app ## Нужно только если у вас уже была неудачная пересборка ./launcher enter app su -c 'psql discourse' postgres -
Двухконтейнерная конфигурация:
cd /var/discourse ./launcher enter data su -c 'psql discourse' postgres
Вы должны увидеть приглашение discourse=#. Если сомневаетесь, выполните \conninfo.
Выполните скрипт.
Вставьте в приглашение весь блок DO $$ ... $$; из поста nat выше и нажмите Enter. При успешном выполнении вы увидите уведомления вроде:
NOTICE: Renamed resenha_rooms to voice_rooms
NOTICE: Renamed resenha_room_memberships to voice_room_memberships
...
Если же возникнет исключение (например, «Both Resenha and Voice tables exist. Nothing was changed.»), остановитесь и вставьте сообщение сюда — скрипт намеренно безопасен и в этом случае ничего не меняет.
Выйдите и пересоберите.
\q
exit
затем на хосте:
./launcher rebuild app # один контейнер
./launcher rebuild web_only # два контейнера (можно также через bootstrap)
Возможно, потребуется две пересборки — первая завершит частично примененное состояние миграции, вторая завершится успешно.