beego
启动时,无法识别sql驱动
package models
import (
"database/sql"
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
"log"
"github.com/garyburd/redigo/redis"
)
var o orm.Ormer
var Conn redis.Conn
func Syncdb() {
createdb()
Connect()
o = orm.NewOrm()
name := "default"
force := true
verbose := true
err := orm.RunSyncdb(name, force, verbose)
if err != nil {
fmt.Println(err)
}
//初始化数据
fmt.Println("database init is complete . \n Please restart the application")
}
func Connect() {
var dns string
db_type := beego.AppConfig.String("db_type")
db_host := beego.AppConfig.String("db_host")
db_port := beego.AppConfig.String("db_port")
db_user := beego.AppConfig.String("db_user")
db_pass := beego.AppConfig.String("db_pass")
db_name := beego.AppConfig.String("db_name")
// db_path := beego.AppConfig.String("db_path")
orm.RegisterDriver("mymysql", orm.DRMySQL)
dns = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", db_user, db_pass, db_host, db_port, db_name)
orm.RegisterDataBase("default", db_type, dns)
}
func createdb() {
db_type := beego.AppConfig.String("db_type")
db_host := beego.AppConfig.String("db_host")
db_port := beego.AppConfig.String("db_port")
db_user := beego.AppConfig.String("db_user")
db_pass := beego.AppConfig.String("db_pass")
db_name := beego.AppConfig.String("db_name")
var dns string
var sqlstring string
dns = fmt.Sprintf("%s:%s@tcp(%s:%s)/?charset=utf8", db_user, db_pass, db_host, db_port)
sqlstring = fmt.Sprintf("CREATE DATABASE if not exists `%s` CHARSET utf8 COLLATE utf8_general_ci", db_name)
db, err := sql.Open(db_type, dns)
if err != nil {
panic(err.Error())
}
r, err := db.Exec(sqlstring)
if err != nil {
log.Println(err)
log.Println(r)
} else {
log.Println("Database:", db_name, "created")
}
defer db.Close()
}
报错:
$ go run main.go
[ORM]register db 'default' , sql :unknown driver "" (forgotten import?)
谁知道这是怎么回事?