Merge pull request #56 from ZhengYang/master

Minor UX improvement before implementing pq
This commit is contained in:
astaxie 2014-08-21 11:14:36 +08:00
commit f850d0de5e
2 changed files with 19 additions and 6 deletions

2
g.go
View File

@ -23,7 +23,7 @@ var cmdGenerate = &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 | postgresql | sqlite], the default is mysql
-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"

View File

@ -25,6 +25,7 @@ import (
"strings"
_ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
)
const (
@ -197,13 +198,14 @@ func (tag *OrmTag) String() string {
func generateAppcode(driver, connStr, level, tables, currpath string) {
var mode byte
if level == "1" {
switch level {
case "1":
mode = O_MODEL
} else if level == "2" {
case "2":
mode = O_MODEL | O_CONTROLLER
} else if level == "3" {
case "3":
mode = O_MODEL | O_CONTROLLER | O_ROUTER
} else {
default:
ColorLog("[ERRO] Invalid 'level' option: %s\n", level)
ColorLog("[HINT] Level must be either 1, 2 or 3\n")
os.Exit(2)
@ -215,6 +217,17 @@ func generateAppcode(driver, connStr, level, tables, currpath string) {
selectedTables[v] = true
}
}
switch driver {
case "mysql":
case "postgres":
case "sqlite":
ColorLog("[ERRO] Generating app code from SQLite database is not supported yet.\n")
os.Exit(2)
default:
ColorLog("[ERRO] Unknown database driver: %s\n", driver)
ColorLog("[HINT] Driver must be one of mysql, postgres or sqlite\n")
os.Exit(2)
}
gen(driver, connStr, mode, selectedTables, currpath)
}
@ -223,7 +236,7 @@ func generateAppcode(driver, connStr, level, tables, currpath string) {
func gen(dbms, connStr string, mode byte, selectedTableNames map[string]bool, currpath string) {
db, err := sql.Open(dbms, connStr)
if err != nil {
ColorLog("[ERRO] Could not connect to %s: %s\n", dbms, connStr)
ColorLog("[ERRO] Could not connect to %s database: %s, %s\n", dbms, connStr, err)
os.Exit(2)
}
defer db.Close()