本文整理匯總了Golang中github.com/blendlabs/spiffy.DbConnection.Begin方法的典型用法代碼示例。如果您正苦於以下問題:Golang DbConnection.Begin方法的具體用法?Golang DbConnection.Begin怎麽用?Golang DbConnection.Begin使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/blendlabs/spiffy.DbConnection
的用法示例。
在下文中一共展示了DbConnection.Begin方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: invokeMigration
func (r *Runner) invokeMigration(isTest bool, m Migration, c *spiffy.DbConnection, optionalTx ...*sql.Tx) (err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("%v", err)
}
}()
if m.IsTransactionIsolated() {
err = m.Apply(c, spiffy.OptionalTx(optionalTx...))
return
}
var tx *sql.Tx
tx, err = c.Begin()
if err != nil {
return err
}
defer func() {
if err == nil {
err = exception.Wrap(tx.Commit())
} else {
err = exception.WrapMany(err, exception.New(tx.Rollback()))
}
}()
err = m.Apply(c, tx)
return
}
示例2: Test
// Test runs the data file reader and then rolls-back the txn.
func (dfr *DataFileReader) Test(c *spiffy.DbConnection, optionalTx ...*sql.Tx) (err error) {
tx, err := c.Begin()
if err != nil {
return
}
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("%v", err)
}
if err == nil {
dfr.logger.Applyf(dfr, "done!")
} else {
dfr.logger.Errorf(dfr, err)
}
tx.Rollback()
}()
err = dfr.invoke(c, tx)
return
}