Eu também tive esse problema — e executar aquele script exigiu um pouco de orientação do ask.discourse.com, pois não é muito fácil para administradores de sistemas menos experientes!
Aqui está um resumo para os outros:
Para quem estiver enfrentando isso na instalação padrão com Docker, aqui está como executar o script acima de fato.
Obtenha um shell e abra o psql.
-
Contêiner único:
cd /var/discourse ./launcher start app ## Necessário apenas se você já teve uma reconstrução falha ./launcher enter app su -c 'psql discourse' postgres -
Configuração com dois contêineres:
cd /var/discourse ./launcher enter data su -c 'psql discourse' postgres
Você deve ver o prompt discourse=#. Se tiver dúvidas, execute \conninfo.
Execute o script.
Cole todo o bloco DO $$ ... $$; da postagem acima do nat no prompt e pressione Enter. Uma execução bem-sucedida imprime avisos como:
NOTICE: Renamed resenha_rooms to voice_rooms
NOTICE: Renamed resenha_room_memberships to voice_room_memberships
...
Se, em vez disso, ele levantar uma exceção (por exemplo, “Both Resenha and Voice tables exist. Nothing was changed.”), pare e cole a mensagem de volta aqui — o script é intencionalmente seguro e não altera nada nesse caso.
Saia e reconstrua.
\q
exit
e, de volta no host:
./launcher rebuild app # contêiner único
./launcher rebuild web_only # dois contêineres (também pode ser feito via bootstrap, é claro)
Você pode precisar de duas reconstruções — a primeira finaliza o estado de migração aplicado parcialmente, e a segunda completa o processo com sucesso.