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

相关文章
相关标签/搜索