github.com/woremacx/kocha@v0.7.1-0.20150731103243-a5889322afc9/cmd/kocha-generate/kocha-generate-model/skeleton/model/genmai/config.go.tmpl (about) 1 package db 2 3 import ( 4 "fmt" 5 "path/filepath" 6 7 "github.com/naoina/genmai" 8 "github.com/woremacx/kocha" 9 10 _ "github.com/go-sql-driver/mysql" 11 // _ "github.com/lib/pq" 12 _ "github.com/mattn/go-sqlite3" 13 ) 14 15 var DatabaseMap = kocha.DatabaseMap{ 16 "default": { 17 Driver: kocha.Getenv("KOCHA_DB_DRIVER", "sqlite3"), 18 DSN: kocha.Getenv("KOCHA_DB_DSN", filepath.Join("db", "db.sqlite3")), 19 }, 20 } 21 22 var dbMap = make(map[string]*genmai.DB) 23 24 func Get(name string) *genmai.DB { 25 return dbMap[name] 26 } 27 28 func init() { 29 for name, dbconf := range DatabaseMap { 30 var d genmai.Dialect 31 switch dbconf.Driver { 32 case "mysql": 33 d = &genmai.MySQLDialect{} 34 case "postgres": 35 d = &genmai.PostgresDialect{} 36 case "sqlite3": 37 d = &genmai.SQLite3Dialect{} 38 default: 39 panic(fmt.Errorf("kocha: genmai: unsupported driver type: %v", dbconf.Driver)) 40 } 41 db, err := genmai.New(d, dbconf.DSN) 42 if err != nil { 43 panic(err) 44 } 45 dbMap[name] = db 46 } 47 }