Postgresql 去博士后,但不知道在哪里
我有一个SaveRequest方法,它接受和Postgresql 去博士后,但不知道在哪里,postgresql,go,Postgresql,Go,我有一个SaveRequest方法,它接受和http.Request,然后,假定将它保存(现在只是路径)到postgres数据库: func (logger *PostgresLogger) SaveRequest(req *http.Request) { os.Stdout.Write([]byte("Saving to PGDB\n")) request := db.Requests { Path: req.URL.Path } transaction := logger.dbC
http.Request
,然后,假定将它保存(现在只是路径)到postgres数据库:
func (logger *PostgresLogger) SaveRequest(req *http.Request) {
os.Stdout.Write([]byte("Saving to PGDB\n"))
request := db.Requests { Path: req.URL.Path }
transaction := logger.dbConnection.Begin()
Id, saveError := transaction.Save(&request)
if saveError != nil {
panic(saveError)
}
os.Stdout.Write([]byte(fmt.Sprintf("%v\n", Id)))
transactionError := logger.dbConnection.Commit()
if transactionError != nil {
panic(transactionError)
}
}
dbConnection
来自加载配置文件:
func New(prefix string) (PostgresLogger) {
dbConnection, err := hood.Load("/Users/ls/Dropbox/programming/go/src/postgres_logger/db/config.json", "development")
if err != nil {
panic(err)
}
return PostgresLogger{ prefix: prefix, dbConnection: dbConnection }
}
酷。因此,当我启动反向代理并要求它保存传入的请求时,我看到以下内容(示例,其中日志的前缀为RVSPRXY):
所以我们可以看到它增加了从Save返回的id,但是我查看了logging_开发数据库,没有任何记录
停止并重新启动服务器会从停止的位置继续增加ID,因此看起来它实际上在保存,但是在哪里呢
更新
以下是开发配置:
{
"development": {
"driver": "postgres",
"source": "user=logging dbname=logging_development sslmode=disable"
}
}
以及PGAdmin为连接显示的一些内容:
5289 logging logging_development 2013-05-11 17:54:48.700467-06 127.0.0.1:51403 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5290 logging logging_development 2013-05-11 17:54:48.746065-06 127.0.0.1:51414 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5291 logging logging_development 2013-05-11 17:54:48.747876-06 127.0.0.1:51415 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5292 logging logging_development 2013-05-11 17:54:48.748086-06 127.0.0.1:51416 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5293 logging logging_development 2013-05-11 17:54:48.74866-06
编辑:修复了一个错误检查错误(不是问题的原因)您写道:
func (logger *PostgresLogger) SaveRequest(req *http.Request) {
os.Stdout.Write([]byte("Saving to PGDB\n"))
request := db.Requests{Path: req.URL.Path}
transaction := logger.dbConnection.Begin()
Id, saveError := transaction.Save(&request)
if saveError != nil {
panic(saveError)
}
os.Stdout.Write([]byte(fmt.Sprintf("%v\n", Id)))
transactionError := logger.dbConnection.Commit()
if saveError != nil {
panic(transactionError)
}
}
如果你写下:
func (logger *PostgresLogger) SaveRequest(req *http.Request) {
os.Stdout.Write([]byte("Saving to PGDB\n"))
request := db.Requests{Path: req.URL.Path}
transaction := logger.dbConnection.Begin()
Id, saveError := transaction.Save(&request)
if saveError != nil {
panic(saveError)
}
os.Stdout.Write([]byte(fmt.Sprintf("%v\n", Id)))
// commit transaction
transactionError := transaction.Commit()
// check transactionError
if transactionError != nil {
panic(transactionError)
}
}
1) 根据config.json,数据应该放在哪里?2)您可以使用pgadmin检查连接到哪些db客户端,以及它们实际执行的查询。我添加了配置文件。它应该是记录开发,服务器的统计数据似乎表明了这一点。
os.Stdout.Write([]字节(“保存到PGDB\n”))
可能会更好,因为fmt.Println(“保存到PGDB”)
btw您只修复了一个bug。为什么?为了避免人们玩“发现差异”的游戏,你有没有可能提到你改变了什么以及为什么改变的原因?他注意到我分配了一个transactionError,但随后检查了saveError。我也注意到了这一点,并对其进行了修复,但仍然得到了相同的结果:(您是否复制并粘贴了提议的代码,提交
s事务
并检查事务错误
?这是一个问题还是一个答案?还是一个以问题形式表述的答案?-无论如何,使用Stackoverflows问答格式,用于本地化问题的问题应作为问题的注释发布,而不是作为答案发布。)。只有答案应该作为答案发布。
func (logger *PostgresLogger) SaveRequest(req *http.Request) {
os.Stdout.Write([]byte("Saving to PGDB\n"))
request := db.Requests{Path: req.URL.Path}
transaction := logger.dbConnection.Begin()
Id, saveError := transaction.Save(&request)
if saveError != nil {
panic(saveError)
}
os.Stdout.Write([]byte(fmt.Sprintf("%v\n", Id)))
// commit transaction
transactionError := transaction.Commit()
// check transactionError
if transactionError != nil {
panic(transactionError)
}
}