2017-02-19 3 views
1

golangでGORMを使用してCloud SQLデータベースに接続しようとしています。GORMを使用したApp EngineのCloud SQL接続

db, _ = gorm.Open("mysql", "user:[email protected](connection:name:example)/") 
if err != nil { 
     log.Println(err) 
     //panic(err) 
    } 

私は

goapp serve appengine/ 

は、私はデータベースの移行に関連していたたランタイムエラー

ERROR 2017-02-19 20:48:05,436 http_runtime.py:396] bad runtime process port ['\r\n'] 

に取得するアプリを提供しようとすると

db.AutoMigrate(&models.Event{}) 

の場合私はAutoMigrateを削除しますeランタイムプロセスのポートエラーが消えます。しかし、データベースクエリを実行するルート(つまりイベント)にアクセスするたびに、接続が切断され、404ページがスローされ、エラーメッセージが記録されます。sql: database is closed

私は、パッケージgo build && ./appnameローカルのMySQLサーバを使用するとうまく動作します。

誰かがGoのGORMフレームワークとApp Engineを使用してCloud SQLデータベースに接続する方法を教えてください。

答えて

0

これは、このファイルのlog.Newへの呼び出しによるものである:https://stackoverflow.com/a/24112953/4266494

これを無効にするには、あなたはすべてのGORMログを無効にすることができ、次のいずれかdev_appserver.pyはそれを取得する理由https://github.com/jinzhu/gorm/blob/master/logger.go#L15

このanwserを説明します。

db.LogMode(false) 

またはロガー出力アダプタを使用します。https://github.com/benguild/GAEBridge/blob/master/log/debugLevel.go

db.SetLogger(NewDebugLogger(nil)) // on application scope 
db.SetLogger(NewDebugLogger(appengine.NewContext(req))) // on request scope 

私は実際のコンテキストで新しいロガーを設定しています これは、いくつかのログを保存している間にクラッシュを避けるために見つけた唯一の回避策です。

関連する問題