Conecte-se a um banco de dados Postgres em seu aplicativo Go com GORM

Conecte-se a um banco de dados Postgres em seu aplicativo Go com GORM
Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

O Postgres é um dos bancos de dados SQL populares devido aos seus muitos recursos e facilidade de uso. O Postgres é compatível com ACID com recursos como controle de simultaneidade de várias versões, replicação assíncrona, transações aninhadas e log write-ahead. Juntamente com muitos outros, esses recursos tornam o Postgres o sistema de gerenciamento de banco de dados SQL ideal.





O ecossistema Go é o lar de muitos pacotes para interagir com vários DBMS, incluindo Postgres. Go fornece o built-in banco de dados/sql pacote para trabalhar com bancos de dados SQL usando drivers de banco de dados. Usando estruturas de dados Go, você pode integrar ORMs populares de terceiros, como GORM, para facilitar a interação com seu banco de dados.





Introdução ao GORM e ao Postgres

  a página inicial do GORM

O pacote GORM é um dos ORMs mais populares no ecossistema Go porque é amigável ao desenvolvedor, rico em recursos e se baseia em a banco de dados/sql pacote .





O GORM fornece funcionalidade para migrações automáticas, log, instruções preparadas, transações e fragmentação. O pacote adota a abordagem code-first usando structs e outros tipos de dados integrados.

Execute este comando de terminal em seu diretório de trabalho para adicionar o pacote GORM às dependências de seu projeto:



como adicionar linha na palavra
 go get gorm.io/gorm\n

Você precisará de um driver de banco de dados para trabalhar com o pacote GORM. GORM fornece drivers de banco de dados para DBMS populares. Execute este comando em seu diretório de trabalho para instalar o GORM Postgre condutor:

 go get gorm.io/driver/postgres\n

Conectando Postgres com Go usando GORM

Importe esses pacotes em seu arquivo Go para trabalhar com o ORM e o driver de banco de dados. Você usará o registro pacote para registrar erros em seu console e no fmt pacote para imprimir a saída.





 import (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "log"\n)\n

Você precisará de uma string de conexão para se conectar ao seu banco de dados Postgres no ambiente de execução. Você pode usar uma struct como modelo para os campos que compõem a string de conexão. O uso de uma struct facilita a alteração e o teste de diferentes valores, principalmente em casos de injeção de dependência.

Aqui está um exemplo de modelo struct para os campos que compõem a string de conexão:





 type Config struct {\n Host string\n Port string\n Password string\n User string\n DBName string\n SSLMode string\n}\n

Abaixo está uma função típica para sua conexão de banco de dados. Ele retorna a instância da conexão e um erro dependendo do status da conexão.

 func NewConnection() (*gorm.DB, error) {\n return db, nil\n}\n

Você pode instanciar o modelo de estrutura de conexão e preencher os campos com os valores em seu banco de dados Postgres.

     configurations := Config{\n Host: "database_Host",\n Port: "database_Port",\n Password: "database_Password",\n User: "database_User",\n DBName: "database_Name",\n SSLMode: "false",\n }\n dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", configurations.Host, configurations.Port, configurations.User, configurations.Password, configurations.DBName, configurations.SSLMode)\n

o dsn variável usa o Sprintf método de formatação e Ir verbos de formatação de string para concatenar os campos do configuração struct e configure a string de conexão do Postgres.

Você pode abrir uma conexão de banco de dados com GORM usando o Abrir método. o Abrir O método usa uma conexão aberta de um driver de banco de dados e uma lista de configurações opcionais do configuração tipo do pacote GORM. Ele retorna uma instância de conexão e um erro opcional.

     db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})\n if err != nil {\n return db, err\n }\n

Fazendo ping no banco de dados para verificar o status da conexão

Você pode executar ping em seu banco de dados para verificar o status de integridade/online com uma função que retorna um resultado booleano ou um erro se a conexão com o banco de dados for inválida.

 func PingDb() (bool, error) {\n \n return true, nil\n}\n

Você precisará criar uma nova instância de conexão para fazer ping no banco de dados. Aqui está um exemplo usando o NovaConexão função para criar uma instância de conexão:

     connectionInstance, err := NewConnection()\n if err != nil {\n log.Fatalf("The database connection failed %v", err.Error())\n }\n

Depois de obter uma instância de conexão, crie uma instância de banco de dados com o banco de dados método da conexão.

     dbConnection, err := connectionInstance.DB()\n if err != nil {\n return false, err\n } \n

Você pode executar ping no banco de dados com o Ping método da instância do banco de dados. o Ping método retorna quaisquer erros ou nada se a conexão foi bem-sucedida.

 \n err = dbConnection.Ping()\n if err != nil {\n return false, err\n } else {\n \n fmt.Println("The connection was successful")\n }\n

Uma execução bem-sucedida deve resultar em uma saída semelhante a esta:

  saída de conexão bem-sucedida

Você pode usar o pacote database/sql para trabalhar com banco de dados SQL em Go

o banco de dados/sql O pacote é extensível e, como a maioria dos pacotes e drivers de banco de dados Go estendem o pacote, você pode usar o pacote em seus projetos em vez de optar por ORMs.

O GORM também fornece um construtor SQL para criar SQL bruto, o que é útil para operações sem suporte.

windows 10 remove a lixeira da área de trabalho