Upgrade em ARM (aarch64) com locale não padrão
Passei um tempo corrigindo um upgrade com falha em um servidor único com configuração de dois contêineres.
- Sua CPU é ARM
- O Discourse foi configurado com o locale
en_UK.UTF-8
Passo a passo, descobri que:
tianon/postgres-upgrade:13-to-15não funciona em ARM- A configuração do locale é armazenada em
share/${CONTAINER}/postgres_data/postgresql.conf
Comecei comentando a parte env: do contêiner de dados, para garantir que ele usasse os locales padrão.
Assim, para sair da bagunça do upgrade, tomei uma medida arriscada, assumindo que as diferenças de colação entre en_GB e en_US eram negligenciáveis, e atualizei brutalmente todo o cluster para en_US:
UPDATE pg_database SET datctype='en_US.UTF-8', datcollate='en_US.UTF-8';
Eu não tenho certeza se este passo é necessário, pode variar para você (YMMV). Deixo aqui para que pessoas mais experientes comentem, e eu não recomendo isso de forma alguma para idiomas diferentes!
Então, substituí o locale em postgresql.conf:
sed -i -e 's/en_GB/en_US/g' shared/data/postgres_data/postgresql.conf
sudo -H -u discourse ./launcher rebuild data
...
UPGRADE OF POSTGRES COMPLETE
![]()
Não pense que foi fácil: não estou mencionando o longo caminho de exploração de opções, especialmente porque quando interveni, a interface de administração estava indisponível e o último backup foi feito há 6 dias. Eu tive que mexer antes de conseguir uma resolução adequada – ou pelo menos, funcional.
Espero que isso economize tempo de algumas pessoas.