Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide de démarrage rapide vous explique comment vous connecter à une base de données Azure pour PostgreSQL en utilisant du code écrit dans le langage Go (golang). Il détaille l’utilisation d’instructions SQL pour interroger la base de données, la mettre à jour, y insérer des données ou en supprimer. Cet article part du principe que vous connaissez le développement à l'aide de Go, mais que vous débutez avec Azure Database pour PostgreSQL.
Prerequisites
Ce guide de démarrage rapide utilise les ressources créées dans La création d’une base de données Azure pour PostgreSQL comme point de départ.
Important
Utilisez un serveur avec accès public (adresses IP autorisées) activé pour ce guide de démarrage rapide. L’utilisation d’un serveur avec l’Accès privé (intégration au réseau virtuel) activé pour effectuer ce guide de démarrage rapide peut impliquer des étapes supplémentaires qui ne sont pas couvertes.
Vérifiez que l'adresse IP à partir de laquelle vous vous connectez est ajoutée aux règles de pare-feu du serveur à l'aide du portail Azure ou de Azure CLI.
Installer le connecteur pour Go et pq
Installez Go et le pilote Pure Go Postgres (pq) sur votre propre ordinateur. Suivez les étapes correspondant à votre plateforme :
Téléchargez et installez Go pour Microsoft Windows en fonction des instructions d’installation.
Lancez l’invite de commandes à partir du menu Démarrer.
Créez un dossier pour votre projet, par exemple
mkdir %USERPROFILE%\go\src\postgresqlgo.Basculez dans le dossier de projet, par exemple
cd %USERPROFILE%\go\src\postgresqlgo.Définissez la variable d’environnement afin que GOPATH indique le répertoire du code source.
set GOPATH=%USERPROFILE%\go.Exécutez go mod init pour créer un module dans le répertoire actif. Par exemple :
go mod init postgresqlgo.- Le
<module_path>paramètre est généralement un emplacement dans un dépôt GitHub, tel quegithub.com/<your_github_account_name>/<directory>. - Lorsque vous créez une application en ligne de commande en tant que test et que vous ne publierez pas l’application, il
<module_path>n’est pas nécessaire de faire référence à un emplacement réel. Par exemple :postgresqlgo.
- Le
Installez le pilote Pure Go Postgres (pq) en exécutant la commande
go get github.com/lib/pq.Pour résumer, installez Go, puis exécutez ces commandes dans l’invite de commandes :
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Obtenir des informations de connexion
Obtenez les informations de connexion requises pour vous connecter à la base de données Azure pour PostgreSQL. Vous avez besoin du nom de domaine pleinement qualifié du serveur et des informations d’identification.
- Connectez-vous au portail Azure.
- Dans le menu de gauche du portail Azure, sélectionnez Toutes les ressources, puis recherchez le serveur que vous avez créé (par exemple , mydemoserver).
- Sélectionnez le nom du serveur.
- Dans le panneau Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans ce panneau.
Générer et exécuter du code Go
- Pour écrire du code Go, utilisez un éditeur de texte brut, tel que le Bloc-notes dans Microsoft Windows, Nano dans Ubuntu ou TextEdit dans macOS. Si vous préférez un environnement de développement interactif (IDE), essayez GoLand par JetBrains, Visual Studio Code par Microsoft ou Atom.
- Collez le code Go des sections suivantes dans des fichiers texte et enregistrez-les dans votre dossier de projet avec l’extension de fichier *.go, par exemple Windows chemin d’accès
%USERPROFILE%\go\src\postgresqlgo\createtable.goou chemin~/go/src/postgresqlgo/createtable.goLinux. - Recherchez les constantes
HOST,DATABASE,USER, etPASSWORDdans le code et remplacez les valeurs test par les valeurs que vous souhaitez. Lorsque vous créez votre serveur Azure Database pour PostgreSQL, vous créez une base de données nommée postgres. Vous pouvez utiliser cette base de données ou une autre que vous créez. - Lancez l’invite de commandes ou l’interpréteur de commandes Bash. Basculez dans votre dossier de projet. Par exemple, sur Windows, utilisez
cd %USERPROFILE%\go\src\postgresqlgo\. Sur Linux, utilisezcd ~/go/src/postgresqlgo/. Certains environnements EDI mentionnés offrent des fonctionnalités de débogage et de prise en charge du CLR sans nécessiter l’utilisation de l’interpréteur de commandes. - Exécutez le code en tapant la commande
go run createtable.goafin de compiler l’application et de l’exécuter. - Sinon, pour générer le code dans une application native, utilisez
go build createtable.go. Ensuite, lancezcreatetable.exepour exécuter l’application.
Se connecter et créer une table
Utilisez le code suivant pour vous connecter et créer une table à l’aide de l’instruction CREATE TABLE SQL, suivie des instructions INSERT INTO SQL pour ajouter des lignes dans la table.
Le code importe trois packages : le package sql, le package pq qui sert de pilote pour communiquer avec le serveur PostgreSQL, et le package fmt pour les entrées et sorties imprimées sur la ligne de commande.
Le code appelle la méthode sql.Open() pour se connecter à la base de données Azure Database pour PostgreSQL, et vérifie la connexion à l’aide de la méthode db.Ping(). Un descripteur de la base de données est utilisé partout : il contient le pool de connexions pour le serveur de base de données. Le code appelle la méthode Exec() plusieurs fois pour exécuter plusieurs commandes SQL. Chaque fois qu’une méthode checkError() personnalisée vérifie si une erreur s’est produite et panique pour quitter si une erreur se produit.
Remplacez les paramètres HOST, DATABASE, USER et PASSWORD par vos propres valeurs.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Drop previous table of same name if one exists.
_, err = db.Exec("DROP TABLE IF EXISTS inventory;")
checkError(err)
fmt.Println("Finished dropping table (if existed)")
// Create table.
_, err = db.Exec("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
checkError(err)
fmt.Println("Finished creating table")
// Insert some data into table.
sql_statement := "INSERT INTO inventory (name, quantity) VALUES ($1, $2);"
_, err = db.Exec(sql_statement, "banana", 150)
checkError(err)
_, err = db.Exec(sql_statement, "orange", 154)
checkError(err)
_, err = db.Exec(sql_statement, "apple", 100)
checkError(err)
fmt.Println("Inserted 3 rows of data")
}
Lire les données
Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT.
Le code importe trois packages : le package sql, le package pq qui sert de pilote pour communiquer avec le serveur PostgreSQL, et le package fmt pour les entrées et sorties imprimées sur la ligne de commande.
Le code appelle la méthode sql.Open() pour se connecter à la base de données Azure Database pour PostgreSQL, et vérifie la connexion à l’aide de la méthode db.Ping(). Un descripteur de la base de données est utilisé partout : il contient le pool de connexions pour le serveur de base de données. La requête SELECT s’exécute en appelant la méthode db.Query(), et les lignes résultantes sont conservées dans une variable de type rows. Le code lit les valeurs de données des colonnes dans la ligne actuelle à l’aide de la méthode rows.Scan() et parcourt les lignes à l’aide de l’itérateur rows.Next() jusqu’à ce qu’il n’y ait plus de lignes. Les valeurs de colonne de chaque ligne sont affichées sur la console. Chaque fois qu’une méthode checkError() personnalisée est utilisée pour vérifier si une erreur s’est produite et paniquez pour quitter si une erreur se produit.
Remplacez les paramètres HOST, DATABASE, USER et PASSWORD par vos propres valeurs.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Read rows from table.
var id int
var name string
var quantity int
sql_statement := "SELECT * from inventory;"
rows, err := db.Query(sql_statement)
checkError(err)
defer rows.Close()
for rows.Next() {
switch err := rows.Scan(&id, &name, &quantity); err {
case sql.ErrNoRows:
fmt.Println("No rows were returned")
case nil:
fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)
default:
checkError(err)
}
}
}
Mettre à jour des données
Utilisez le code suivant pour vous connecter et mettre à jour les données à l’aide d’une instruction SQL UPDATE.
Le code importe trois packages : le package sql, le package pq qui sert de pilote pour communiquer avec le serveur Postgres, et le package fmt pour les entrées et sorties imprimées sur la ligne de commande.
Le code appelle la méthode sql.Open() pour se connecter à la base de données Azure Database pour PostgreSQL, et vérifie la connexion à l’aide de la méthode db.Ping(). Un descripteur de la base de données est utilisé partout : il contient le pool de connexions pour le serveur de base de données. Le code appelle la méthode Exec() pour exécuter l’instruction SQL qui met à jour la table. Une méthode checkError() personnalisée est utilisée pour vérifier si une erreur s’est produite. Si tel est le cas, dépêchez-vous de quitter l’application.
Remplacez les paramètres HOST, DATABASE, USER et PASSWORD par vos propres valeurs.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Modify some data in table.
sql_statement := "UPDATE inventory SET quantity = $2 WHERE name = $1;"
_, err = db.Exec(sql_statement, "banana", 200)
checkError(err)
fmt.Println("Updated 1 row of data")
}
Supprimer des données
Utilisez le code suivant pour vous connecter à la base de données et supprimer des données à l’aide d’une instruction DELETE SQL.
Le code importe trois packages : le package sql, le package pq qui sert de pilote pour communiquer avec le serveur Postgres, et le package fmt pour les entrées et sorties imprimées sur la ligne de commande.
Le code appelle la méthode sql.Open() pour se connecter à Azure Database pour PostgreSQL, et vérifie la connexion à l’aide de la méthode db.Ping(). Un handle de base de données contient le pool de connexions pour le serveur de base de données et est utilisé partout. Le code appelle la méthode Exec() pour exécuter l’instruction SQL qui supprime une ligne de la table. Une méthode personnalisée checkError() vérifie si une erreur s’est produite et se ferme si une erreur se produit.
Remplacez les paramètres HOST, DATABASE, USER et PASSWORD par vos propres valeurs.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Delete some data from table.
sql_statement := "DELETE FROM inventory WHERE name = $1;"
_, err = db.Exec(sql_statement, "orange")
checkError(err)
fmt.Println("Deleted 1 row of data")
}
Nettoyer les ressources
Pour nettoyer toutes les ressources utilisées pendant ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Contenu connexe
- Gérez Azure Database pour PostgreSQL à l’aide du portail Azure.
- Démarrage rapide : Utilisez Python pour connecter et interroger des données dans Azure Database pour PostgreSQL.
- Démarrage rapide : Utilisez Java pour connecter et interroger des données à partir d’une base de données Azure pour PostgreSQL.
- Démarrage rapide : Utilisez .NET (C#) pour vous connecter et interroger des données à partir d’une base de données Azure pour PostgreSQL.
- Démarrage rapide : Utilisez PHP pour connecter et interroger des données à partir d’une base de données Azure pour PostgreSQL.
- Démarrage rapide : Utilisez Azure CLI pour connecter et interroger des données à partir d’une base de données Azure pour PostgreSQL.
- Démarrage rapide : Importer des données à partir d’Azure Database pour PostgreSQL dans Power BI.