我正在尝试使用Golang中的GORM连接到Cloud SQL数据库 .
db, _ = gorm.Open("mysql", "user:pass@cloudsql(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,则运行时进程端口错误消失 . 但是每当我访问执行数据库查询的路由(即/ events)时,连接都会被删除,抛出404页面并记录错误消息 sql: database is closed
当我通过构建包 go build && ./appname
并使用本地MySQL服务器在本地运行应用程序时,它工作正常 .
有人可以告诉我如何使用Go的GORM框架和App Engine连接到Cloud SQL数据库吗?
1 回答
这是由于调用log.New在此文件中:https://github.com/jinzhu/gorm/blob/master/logger.go#L15
这可以解释为什么dev_appserver.py得到它:https://stackoverflow.com/a/24112953/4266494
要禁用此功能,您可以禁用所有GORM日志记录:
或者使用适配器 Logger 输出:https://github.com/benguild/GAEBridge/blob/master/log/debugLevel.go
我正在设置一个具有真实上下文的新 Logger 这是我发现的唯一一种可以避免崩溃同时保留一些日志的解决方法,如果你们其中一个人有真正的日志,它可能会很棒 .