Postgresql 去博士后,但不知道在哪里

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

我有一个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.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)
    }
}