5
respostas

[Dúvida] Erro ao se conectar no DB

Já fiz de tudo, até mudei a porta como resolveu com um colega do forum e nao deu certo.

Mas segue dando erro de autentificação

segue o print e o respositorio do git

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

https://github.com/LucasStuker/EC

5 respostas

Oii, Lucas, tudo bem?

Eu dei uma olhadinha no seu código e notei que há alguns espaçamentos/concatenações diferentes ali. É importante adicionar espaços entre os diferentes elementos da string de conexão para separá-los corretamente.

A função ConectaComBancoDeDados() deveria ficar deste modo, por exemplo:

func ConectaComBancoDeDados() {
    stringDeConexao := "host=" + os.Getenv("HOST") + " user=" + os.Getenv("USER") + " password=" + os.Getenv("PASSWORD") + " dbname=" + os.Getenv("DBNAME") + " port=" + os.Getenv("PORT") + " sslmode=disable"
    DB, err = gorm.Open(postgres.Open(stringDeConexao))
    if err != nil {
        log.Panic("Erro ao conectar com banco de dados")
    }

    DB.AutoMigrate(&models.Aluno{})
}

Você pode copiar o código acima e adicionar ao seu db.go, por favor?

Se não der certo após a mudança, pode nos retornar aqui.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Oi maria, copiei o seu código mas segue dando o mesmo erro. Obrigado pela atenção

Lucas, você pode tentar usar 127.0.0.1 em vez de localhost, por favor? No erro consta que o hostname não está sendo resolvido. Só alterar no go.yml assim:

      HOST: 127.0.0.1

Outra alternativa - só pra testar - seria alterar a porta de 5433 para a 5432 no Dockerfile.

Se não funcionar, pode me retornar aqui, tá bem?

Abraços!

Oi Maria, ainda segue dando o erro. :/

Oii, Lucas!

Eu também dei um fork no repositório do instrutor e testei seguindo as aulas: os jobs passam certinho e a build também foi feita por aqui.

Verifiquei de novo o seu repositório (não se assuste com o meu fork por lá hahaha), e no seu Dockerfile há um novo ENV para cada variável, sendo que na verdade fizemos deste jeito:

Código do Dockerfile com dois ambientes ENV contendo as variáevis de HOST e PORT em uma e USER, PASSWORD e DBNAME em outra, além das outras linhas passadas no curso

Usamos apenas dois ambientes, e não um pra cada.

  • No meu caso eu coloquei no ENTRYPOINT o "main.exe", não só o "main" -- mudei isso no fork do seu repositório pra testar.

  • Alterei para o original o localhost, pra mantermos igual o do curso, e a função pra conectar com o banco, ao invés de deixar os espaços, coloquei com a indentação do TAB. Deletei a que estava comentada.

  • No go.yml estava escrito Ubuntu, com um "U" maiúsculo. Enquanto embaixo estava com um "u" minúsculo. Mudei isso também.

  • Havia um espaço a mais no db.go. Embaixo de os, e faltava um espaço depois do '*' para as branches no go.yml.

  • Além disso, alterei no docker-compose.yml a porta de volta para a 5432.

Você pode testar, por favor, alterando essas questões no seu repositório original? Se quiser ir testando um de cada, para ver onde pode ter bugado, pode ser uma alternativa legal também.

O fork do seu repositório, com os jobs rodando lisinhos e a build feita: estão aqui.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.