Connectez-vous à Postgresql avec GO

Démarrez Postgre avec Docker

docker-compose.yml


version: "3"
services:
  postgres:
    image: postgres
    container_name: postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=password
    tty: true
    restart: always
    user: root
    volumes:
      - ./init:/docker-entrypoint-initdb.d
      - /etc/localtime:/etc/localtime:ro
  pgweb:
    image: sosedoff/pgweb
    container_name: pgweb
    ports: 
      - "8081:8081"
    environment:
      - DATABASE_URL=postgres://root:password@postgres:5432/testdb?sslmode=disable
    links: 
      - postgres:postgres
    restart: always
    depends_on:
      - postgres

Commencez

docker-compose up -d

Connectez-vous depuis Go

main.go


package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

const (
    // Initialize connection constants.
    HOST     = "127.0.0.1"
    DATABASE = "testdb"
    USER     = "root"
    PASSWORD = "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=disable", 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")
}
go run main.go

Connectez-vous avec psql

Connectez-vous depuis le shell

psql -h localhost -U root -d postgres -p 5432

Affichage de la liste des bases de données

\l

Connectez-vous au DB cible

\c testdb

Vérifiez le DB actuel

select current_database();

Vérifiez si les données sont incluses

testdb=# select * from inventory;
 id |  name  | quantity 
----+--------+----------
  1 | banana |      150
  2 | orange |      154
  3 | apple  |      100

référence

https://qiita.com/hiro9/items/e6e41ec822a7077c3568 https://docs.microsoft.com/ja-jp/azure/postgresql/connect-go

Recommended Posts

Connectez-vous à Postgresql avec GO
Connectez-vous à Wikipedia avec Python
Connectez-vous à plusieurs bases de données avec SQL Alchemy
Connectez-vous à Bitcoin Testnet avec Pycoin
Connectez-vous à Elastic MQ avec boto
Python avec Go
Connectez-vous à MySQL avec Python dans Docker
Connectez-vous à GNU / Linux avec un bureau distant
Connectez-vous à mysql
Connectez-vous à s3 avec AWS Lambda Python
Connectez-vous à Pepper avec l'interpréteur Python de PEPPER Mac
Comment utiliser SQLAlchemy / Connect avec aiomysql
Je souhaite me connecter à PostgreSQL à partir de plusieurs langues
Connectez facilement Xillybus et la logique utilisateur avec cReComp
Connectez-vous à MySQL avec Python sur Raspberry Pi
Convertir 202003 en 2020-03 avec les pandas
Connectez python à mysql
Comment créer un serveur HTTPS avec Go / Gin
Je t'ai écrit pour regarder le signal avec Go
Dessinez la courbe de Bézier avec Go
Convertir la requête Select obtenue de Postgre avec Go en JSON
Faire fonctionner le conteneur Db2 avec Go
Premiers pas avec Go Assembly
Publiez sur Slack avec Python 3
Recherche de bits complète avec Go
Scraping Aller à Hébergement de voyage
Introduction à RDB avec sqlalchemy Ⅰ
Rendre avec la syntaxe facile
Comment mettre à jour avec SQLAlchemy?
Connectez MySQL de Vagrant à MySQL Workbench
Pour exécuter gym_torcs avec ubutnu16
Comment lancer avec Theano
Comment se connecter à Cloud SQL PostgreSQL sur Google Cloud Platform à partir d'un environnement local avec Java
Comment définir les variables Go
[Aller] Comment utiliser "... (3 périodes)"
Comment modifier avec SQLAlchemy?
Connectez-vous à sqlite depuis python
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Essayez d'implémenter le parfum avec Go
Connectez-vous à centos6 sur Virtualbox avec une connexion SSH depuis Mac
Comment séparer les chaînes avec ','
Connectez le noyau Jupyter Notebook à Spyder avec Jupytext activé
Connectez-vous à la région tokyo de s3
Comment faire RDP sur Fedora31
2 façons de gérer SessionNotCreatedException
Comment supprimer avec SQLAlchemy?
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
Convertir .ipynb en .html (avec BatchFile)
Comment annuler RT avec Tweepy
Étapes pour développer Django avec VSCode
Python: comment utiliser async avec
Lien pour commencer avec python