Configure Discourse para usar um servidor PostgreSQL separado

Não senhor, sem problemas. Obrigado pelas informações

No meu caso, foi porque eu tinha scram-sha-256 e não trust como o mecanismo de autenticação.
Porque scram-sha-256 requer um usuário físico.
Você provavelmente pode contornar isso criando um mapa de usuários em pg_ident.conf, mas não tenho certeza de como.

Se por “usuário físico” você quer dizer “usuário do sistema Unix”, então não, scram-sha-256 não requer tal usuário configurado no sistema. O método peer requer um usuário do sistema, e trust é simplesmente uma péssima ideia em geral quando você está usando um servidor de banco de dados remoto.

1 curtida

Teremos que incluir o seguinte além do processo existente?

CREATE EXTENSION vector;

já que vejo esta extensão no template postgres do discourse_docker?

Isso é usado pelo plugin principal do Discourse AI, então você precisará dele se estiver usando-o.

Não me lembro de ter ativado esse plugin. Na verdade, acabei de verificar e ele está desativado. Mas recentemente, quando reconstruí a imagem, quando o último commit foi além deste commit - GitHub - discourse/discourse at 0eab7daea450e1d7e416c46a23aaaf95687d4855, rake db:migrate começou a falhar. Quando usei o commit anterior ao acima para inicializar, continuou funcionando.
Agora que ativei esta extensão, commits posteriores a este estão funcionando sem problemas.

1 curtida

Mas agora o plugin de IA está no núcleo, então você precisa da extensão independentemente de usar o plugin de IA (ou se esforçar para removê-lo explicitamente), certo?

1 curtida

Ah, é verdade, pois as migrações são executadas independentemente de o plugin estar habilitado.

2 curtidas

Ao usar um servidor PostgreSQL gerenciado como um usuário não superusuário, a migração do banco de dados falhará em EnablePgVectorExtension ('20230710171141'), mesmo que o vector tenha sido adicionado manualmente ao banco de dados. Existe uma maneira de desabilitar esta etapa de migração ou fazer uma verificação se o vector existe.

Causado por:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: Como o vector não é uma extensão confiável, apenas membros de “azure_pg_admin” têm permissão para usar CREATE EXTENSION vector (ActiveRecord::StatementInvalid)
DICA: para saber como permitir uma extensão ou ver a lista de extensões permitidas, consulte Considerations with the Use of Extensions and Modules | Microsoft Learn

Nós mesclamos um PR para lidar com isso no mês passado, você está na versão mais recente?

1 curtida

Obrigado! Estou usando a imagem docker discourse/discourse:3.5.3. Não tenho certeza se ela inclui o PR mais recente? (Edição: A Release v2025.12.0 inclui o PR)

1 curtida