gpt4 book ai didi

google-app-engine - App Engine 上使用 Go 的 GORM Cloud SQL 连接

转载 作者:IT王子 更新时间:2023-10-29 02:22:17 25 4
gpt4 key购买 nike

我正在尝试使用 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 数据库?

最佳答案

这是由于调用了日志。此文件中的新内容:https://github.com/jinzhu/gorm/blob/master/logger.go#L15

这个答案解释了为什么 dev_appserver.py 得到它:https://stackoverflow.com/a/24112953/4266494

要禁用此功能,您可以禁用所有 GORM 日志记录:

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

我正在设置一个具有真实上下文的新记录器这是我发现的唯一一种在保留一些日志的同时避免崩溃的解决方法,如果你们中的一个人有一个真实的,那可能会很棒。

关于google-app-engine - App Engine 上使用 Go 的 GORM Cloud SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42332800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com