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  }