Ao rodar o programa tomo o erro abaixo http: panic serving [::1]:56907: pq: database "alura_loja" does not exist
porém meu postgres está com o database e a table criadas e configuradas conforme video da unidade 2
package main
import (
"database/sql"
"fmt"
"html/template"
"net/http"
_ "github.com/lib/pq"
)
const (
host = "localhost"
port = 5432
user = "postgres"
password = "****"
dbname = "alura_loja"
)
func conectaComBancoDeDados() *sql.DB {
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
host, port, user, password, dbname)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
panic(err.Error())
}
return db
}
// Produto -
type Produto struct {
ID int
Nome string
Descricao string
Preco float64
Quantidade int
}
var temp = template.Must(template.ParseGlob("templates/*.html"))
func main() {
http.HandleFunc("/", index)
http.ListenAndServe(":8000", nil)
}
func index(w http.ResponseWriter, r *http.Request) {
db := conectaComBancoDeDados()
selectDeTodosOsProdutos, err := db.Query("select * from produtos")
if err != nil {
panic(err.Error())
}
p := Produto{}
produtos := []Produto{}
for selectDeTodosOsProdutos.Next() {
var id, quantidade int
var nome, descricao string
var preco float64
err = selectDeTodosOsProdutos.Scan(&id, &nome, &descricao, &preco, &quantidade)
if err != nil {
panic(err.Error())
}
p.Nome = nome
p.Descricao = descricao
p.Preco = preco
p.Quantidade = quantidade
produtos = append(produtos, p)
}
temp.ExecuteTemplate(w, "Index", produtos)
defer db.Close()
}