Ivan Galakhov 4 年 前
コミット
f439e9b61b
2 ファイル変更20 行追加3 行削除
  1. 16 0
      internal/adapter/gorm.go
  2. 4 3
      internal/repository/gorm/cluster.go

+ 16 - 0
internal/adapter/gorm.go

@@ -2,6 +2,9 @@ package adapter
 
 import (
 	"fmt"
+	"gorm.io/gorm/logger"
+	"log"
+	"os"
 	"time"
 
 	"github.com/porter-dev/porter/internal/config"
@@ -12,12 +15,22 @@ import (
 
 // New returns a new gorm database instance
 func New(conf *config.DBConf) (*gorm.DB, error) {
+	logger := logger.New(
+		log.New(os.Stdout, "\r\n", log.LstdFlags),
+		logger.Config{
+			SlowThreshold:              time.Second,
+			LogLevel:                   logger.Silent,
+			Colorful:                  false,
+		},
+	)
+
 	if conf.SQLLite {
 		// we add DisableForeignKeyConstraintWhenMigrating since our sqlite does
 		// not support foreign key constraints
 		return gorm.Open(sqlite.Open(conf.SQLLitePath), &gorm.Config{
 			DisableForeignKeyConstraintWhenMigrating: true,
 			FullSaveAssociations:                     true,
+			Logger: logger,
 		})
 	}
 
@@ -41,6 +54,7 @@ func New(conf *config.DBConf) (*gorm.DB, error) {
 
 	defaultDB, err := gorm.Open(postgres.Open(postgresDSN), &gorm.Config{
 		FullSaveAssociations: true,
+		Logger: logger,
 	})
 
 	// attempt to create the database
@@ -51,6 +65,7 @@ func New(conf *config.DBConf) (*gorm.DB, error) {
 	// open the database connection
 	res, err := gorm.Open(postgres.Open(targetDSN), &gorm.Config{
 		FullSaveAssociations: true,
+		Logger: logger,
 	})
 
 	// retry the connection 3 times
@@ -62,6 +77,7 @@ func New(conf *config.DBConf) (*gorm.DB, error) {
 			time.Sleep(timeout)
 			res, err = gorm.Open(postgres.Open(targetDSN), &gorm.Config{
 				FullSaveAssociations: true,
+				Logger: logger,
 			})
 
 			if retryCount > 3 {

+ 4 - 3
internal/repository/gorm/cluster.go

@@ -2,7 +2,6 @@ package gorm
 
 import (
 	"context"
-
 	"github.com/porter-dev/porter/internal/models"
 	"github.com/porter-dev/porter/internal/repository"
 	"gorm.io/gorm"
@@ -172,7 +171,9 @@ func (repo *ClusterRepository) ReadCluster(
 	cluster := &models.Cluster{}
 
 	// preload Clusters association
-	if err := ctxDB.Preload("TokenCache").Where("id = ?", id).First(&cluster).Error; err != nil {
+	if err := ctxDB.Debug().Preload("TokenCache", func(db *gorm.DB) *gorm.DB {
+		return db.Limit(100).Order("cluster_token_caches.updated_at DESC")
+	}).Where("id = ?", id).First(&cluster).Error; err != nil {
 		return nil, err
 	}
 
@@ -261,7 +262,7 @@ func (repo *ClusterRepository) UpdateClusterTokenCache(
 	cluster.TokenCache.Token = tokenCache.Token
 	cluster.TokenCache.Expiry = tokenCache.Expiry
 
-	if err := ctxDB.Save(cluster).Error; err != nil {
+	if err := ctxDB.Debug().Save(cluster).Error; err != nil {
 		return nil, err
 	}