diff --git a/g.go b/g.go index 5c45ea4..e221c40 100644 --- a/g.go +++ b/g.go @@ -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" diff --git a/g_appcode.go b/g_appcode.go index 6cdf29b..d94fbb1 100644 --- a/g_appcode.go +++ b/g_appcode.go @@ -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()