我正在使用gorm ORM编写一个小型、简单的网络应用程序。
由于数据库可能会独立于 Web 应用程序而失败,因此我希望能够识别与这种情况相对应的错误,以便我可以在不重新启动 Web 应用程序的情况下重新连接到我的数据库。
激励例子:
考虑以下代码:
var mrs MyRowStruct
db := myDB.Model(MyRowStruct{}).Where("column_name = ?", value).First(&mrs)
return &mrs, db.Error
如果发生这种情况
db.Error != nil
,我如何以编程方式确定错误是否源于数据库连接问题?根据我的阅读,我知道这
gorm.DB
并不gorm.Open
代表连接,所以如果数据库连接失败,我什至必须担心重新连接或重新发出调用?在 Go 中是否有处理数据库故障的常见模式?