beego——事務處理和命令模式

1.事務處理

ORM 能夠簡單的進行事務操做。sql

o := NewOrm()
err := o.Begin()
// 事務處理過程
...
...
// 此過程當中的全部使用 o Ormer 對象的查詢都在事務處理範圍內
if SomeError {
    err = o.Rollback()
} else {
    err = o.Commit()
}

 

2.命令模式

註冊模型與數據庫之後,調用 RunCommand 執行 orm 命令。數據庫

func main() {
    // orm.RegisterModel...
    // orm.RegisterDataBase...
    ...
    orm.RunCommand()
}
go build main.go
./main orm
# 直接執行能夠顯示幫助
# 若是你的程序能夠支持的話,直接運行 go run main.go orm 也是同樣的效果

  

自動建表ui

./main orm syncdb -h
Usage of orm command: syncdb:
  -db="default": DataBase alias name
  -force=false: drop tables before create
  -v=false: verbose info

使用 -force=1 能夠 drop table 後再建表code

使用 -v 能夠查看執行的 sql 語句orm

 

在程序中直接調用自動建表:對象

// 數據庫別名
name := "default"

// drop table 後再建表
force := true

// 打印執行過程
verbose := true

// 遇到錯誤當即返回
err := orm.RunSyncdb(name, force, verbose)
if err != nil {
    fmt.Println(err)
}

自動建表功能在非 force 模式下,是會自動建立新增長的字段的。也會建立新增長的索引。blog

對於改動過的舊字段,舊索引,須要用戶自行進行處理。索引

打印建表SQL事務

./main orm sqlall -h
Usage of orm command: syncdb:
  -db="default": DataBase alias name

默認使用別名爲 default 的數據庫it

相關文章
相關標籤/搜索