beego bee tool mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
astaxie cff303a528 Merge pull request #261 from ihippik/patch-2 4 years ago
testdata/router change this to short name 6 years ago
.gitignore Fixed merge conflict 4 years ago
.goxc.json add goxc 4 years ago
.travis.yml add beego version and bee version and travis 4 years ago
Beefile add Beefily yml 4 years ago
LICENSE Update LICENSE 7 years ago
Makefile added Makefile 4 years ago
README.md Update README.md 4 years ago
apiapp.go unzip to swagger while not swagger-2 4 years ago
autorouter.go return actual value from subcommand 6 years ago
autorouter_test.go Added func getControllerInfo 7 years ago
bale.go go lint 4 years ago
banner.go Tweaked the Bee banner 4 years ago
bee.go update swagger links 4 years ago
bee.json remove mysql conn str from default 6 years ago
code.go go vet happy 4 years ago
color.go Added ANSI color writer 4 years ago
colorwriter.go Added ANSI color writer 4 years ago
colorwriter_windows.go Fixed bug in color writer for Windows 4 years ago
conf.go Merge pull request #231 from sergeylanzman/go-lint 4 years ago
fix.go Merge pull request #223 from saturn4er/patch-1 4 years ago
g.go refactor generate migration 4 years ago
g_appcode.go Merge pull request #229 from czm1989/develop 4 years ago
g_controllers.go 兼容query中的日期、时间参数。如:query=xxTime.lt:2016-01-01T23:22:21+08:00 4 years ago
g_docs.go Separate and add @Description with @Summary params 4 years ago
g_hproseappcode.go Merge pull request #229 from czm1989/develop 4 years ago
g_migration.go refactor generate migration 4 years ago
g_model.go Merge pull request #229 from czm1989/develop 4 years ago
g_scaffold.go refactor generate migration 4 years ago
g_views.go New tweaks 4 years ago
hproseapp.go New tweaks 4 years ago
migrate.go Added support for multiple paths GOPATH 4 years ago
new.go fix: if current path is in GOPATH, create api in current path 4 years ago
pack.go New tweaks 4 years ago
run.go update swagger links 4 years ago
rundocs.go unzip to swagger while not swagger-2 4 years ago
test.go go vet happy 4 years ago
util.go Merge pull request #236 from amrfaissal/color-logger-feature 4 years ago
version.go Tweaked the Bee banner 4 years ago
watch.go Merge pull request #214 from amrfaissal/hotfix-212 4 years ago

README.md

bee

Build Status

Bee is a command line tool facilitating development with beego framework.

Requirements

  • Go version >= 1.3.

Installation

Begin by installing bee using go get command.

go get github.com/beego/bee

Then you can add bee binary to PATH environment variable in your ~/.bashrc or ~/.bash_profile file:

export PATH=$PATH:<your_main_gopath>/bin

If you already have bee installed, updating bee is simple:

go get -u github.com/beego/bee

Basic commands

Bee provides a variety of commands which can be helpful at various stage of development. The top level commands include:

  new         create an application base on beego framework
  run         run the app which can hot compile
  pack        compress an beego project
  api         create an api application base on beego framework
  bale        packs non-Go files to Go source files
  version     show the bee & beego version
  generate    source code generator
  migrate     run database migrations
  hprose      create an rpc application use hprose base on beego framework

bee version

The first command is the easiest: displaying which version of bee, beego and go is installed on your machine:

$ bee version
bee   :1.2.2
beego :1.4.0
Go    :go version go1.2.1 linux/amd64

bee new

Creating a new beego web application is no big deal, too.

$ bee new myapp
[INFO] Creating application...
/home/zheng/gopath/src/myapp/
/home/zheng/gopath/src/myapp/conf/
/home/zheng/gopath/src/myapp/controllers/
/home/zheng/gopath/src/myapp/models/
/home/zheng/gopath/src/myapp/routers/
/home/zheng/gopath/src/myapp/tests/
/home/zheng/gopath/src/myapp/static/
/home/zheng/gopath/src/myapp/static/js/
/home/zheng/gopath/src/myapp/static/css/
/home/zheng/gopath/src/myapp/static/img/
/home/zheng/gopath/src/myapp/views/
/home/zheng/gopath/src/myapp/conf/app.conf
/home/zheng/gopath/src/myapp/controllers/default.go
/home/zheng/gopath/src/myapp/views/index.tpl
/home/zheng/gopath/src/myapp/routers/router.go
/home/zheng/gopath/src/myapp/tests/default_test.go
/home/zheng/gopath/src/myapp/main.go
2014/08/29 15:45:47 [SUCC] New application successfully created!

bee run

To run the application we just created, navigate to the application folder and execute bee run.

$ cd myapp
$ bee run

bee pack

usage: bee pack

compress an beego project

-p            app path. default is current path
-b            build specify platform app. default true
-ba           additional args of go build
-be=[]        additional ENV Variables of go build. eg: GOARCH=arm
-o            compressed file output dir. default use current path
-f=""         format. [ tar.gz / zip ]. default tar.gz
-exp=""       relpath exclude prefix. default: .
-exs=""       relpath exclude suffix. default: .go:.DS_Store:.tmp
              all path use : as separator
-exr=[]       file/directory name exclude by Regexp. default: ^.
-fs=false     follow symlink. default false
-ss=false     skip symlink. default false
              default embed symlink into compressed file
-v=false      verbose

bee api

usage: bee api [appname]

create an api application base on beego framework

bee api [appname] [-tables=""] [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    -tables: a list of table names separated by ',', default is empty, indicating all tables
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is ''
             e.g. for mysql:    root:@tcp(127.0.0.1:3306)/test
             e.g. for postgres: postgres://postgres:postgres@127.0.0.1:5432/postgres
  
if conn is empty will create a example api application. otherwise generate api application based on an existing database.

In the current path, will create a folder named [appname]

In the appname folder has the follow struct:

  ├── conf
  │   └── app.conf
  ├── controllers
  │   └── object.go
  │   └── user.go
  ├── routers
  │   └── router.go
  ├── tests
  │   └── default_test.go
  ├── main.go
  └── models
      └── object.go
      └── user.go

bee hprose

usage: bee hprose [appname]

create an rpc application use hprose base on beego framework

bee hprose [appname] [-tables=""] [-driver=mysql] [-conn=root:@tcp(127.0.0.1:3306)/test]
    -tables: a list of table names separated by ',', default is empty, indicating all tables
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is ''
             e.g. for mysql:    root:@tcp(127.0.0.1:3306)/test
             e.g. for postgres: postgres://postgres:postgres@127.0.0.1:5432/postgres
  
if conn is empty will create a example rpc application. otherwise generate rpc application use hprose based on an existing database.

In the current path, will create a folder named [appname]

In the appname folder has the follow struct:

  ├── conf
  │   └── app.conf
  ├── main.go
  └── models
      └── object.go
      └── user.go

bee bale

usage: bee bale

bale packs non-Go files to Go source files and

auto-generate unpack function to main package then run it

during the runtime.

This is mainly used for zealots who are requiring 100% Go code.

bee migrate

usage: bee migrate [Command]

bee migrate [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    run all outstanding migrations
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test

bee migrate rollback [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    rollback the last migration operation
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test

bee migrate reset [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    rollback all migrations
    -driver: [mysql | postgres| sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test

bee migrate refresh [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    rollback all migrations and run them all again
    -driver: [mysql | postgresql | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test

bee generate

Bee also comes with a souce code generator which speeds up the development.

usage: bee generate [Command]

bee generate scaffold [scaffoldname] [-fields=""] [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"]
    The generate scaffold command will do a number of things for you.
    -fields: a list of table fields. Format: field:type, ...
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
    example: bee generate scaffold post -fields="title:string,body:text"

bee generate model [modelname] [-fields=""]
    generate RESTFul model based on fields
    -fields: a list of table fields. Format: field:type, ...

bee generate controller [controllerfile]
    generate RESTFul controllers             

bee generate view [viewpath]
    generate CRUD view in viewpath

bee generate migration [migrationfile] [-fields=""]
    generate migration file for making database schema update
    -fields: a list of table fields. Format: field:type, ...
  
bee generate docs
    generate swagger doc file

bee generate test [routerfile]
    generate testcase

bee generate appcode [-tables=""] [-driver="mysql"] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]
    generate appcode based on an existing database
    -tables: a list of table names separated by ',', default is empty, indicating all tables
    -driver: [mysql | postgres | sqlite], the default is mysql
    -conn:   the connection string used by the driver.
             default for mysql:    root:@tcp(127.0.0.1:3306)/test
             default for postgres: postgres://postgres:postgres@127.0.0.1:5432/postgres
    -level:  [1 | 2 | 3], 1 = models; 2 = models,controllers; 3 = models,controllers,router

Shortcuts

Because you'll likely type these generator commands over and over, it makes sense to create aliases.

# Generator Stuff
alias g:a="bee generate appcode"
alias g:m="bee generate model"
alias g:c="bee generate controller"
alias g:v="bee generate view"
alias g:mi="bee generate migration"

These can be stored in, for example, your ~/.bash_profile or ~/.bashrc files.

Help

If you happend to forget the usage of a command, you can always find the usage information by bee help <command>.

For instance, to get more information about the run command:

$ bee help run
usage: bee run [appname] [watchall] [-main=*.go] [-downdoc=true]  [-gendoc=true]

start the appname throw exec.Command

then start a inotify watch for current dir
                    
when the file has changed bee will auto go build and restart the app

  file changed
       |
  check if it's go file
       |
     yes     no
      |       |
 go build    do nothing
     |
 restart app