🐙
GoからDB接続する(GORM+PostgreSQL16.4)
DB接続を入れる。実施したいことは2つで、モデルを作りそれを元にテーブル構成を自動生成すること、ORMを導入することです。
GORMならどちらも対応していますが、ORMはsqlcが話題になっているのでそちらを使います。sqlcにはマイグレーションする機能がないので、そこだけGORMを使います。
今の会社がMSAzureを重用しているのでAzureのマネージドDBを使って検証します。
まずはDB接続部分から。
server.go
package main
import (
"exit/model"
"fmt"
"github.com/labstack/echo/v4"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func main() {
e := echo.New()
Route(e)
dbURL := "postgres://user:password@hostname:port/dbname"
db, err := gorm.Open(postgres.Open(dbURL), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&model.Product{})
fmt.Println("migrated")
}
モデル
product.go
package model
import (
"database/sql"
"time"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
起動後、モデルに定義した構成でテーブルが作成されました。次はsqlcによるORMを使っていきます。
GORMの公式DOCのサンプルでは接続失敗しましたが試行錯誤して接続しました。
Discussion