From 28fef9e3f4cbbb9dd785309e51d707a10b33aa0f Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sat, 8 Mar 2014 18:12:43 +0700 Subject: [PATCH] Returns error if driver name is not listed. Also remove references to postgresql driver for now. And add some comments for `database.Init` method. --- Makefile | 1 - cmd/droned/drone.go | 2 +- pkg/database/database.go | 21 ++++++++++++++------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 23aaef08b..47d460c56 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ deps: go get github.com/GeertJohan/go.rice go get github.com/GeertJohan/go.rice/rice go get github.com/go-sql-driver/mysql - go get github.com/lib/pq go get github.com/mattn/go-sqlite3 go get github.com/russross/meddler diff --git a/cmd/droned/drone.go b/cmd/droned/drone.go index 3cad9032d..ec60c54a3 100644 --- a/cmd/droned/drone.go +++ b/cmd/droned/drone.go @@ -63,7 +63,7 @@ func main() { // setup database and handlers if err := database.Init(driver, datasource); err != nil { - log.Fatal("Can't initialize database:", err) + log.Fatal("Can't initialize database: ", err) } setupStatic() setupHandlers() diff --git a/pkg/database/database.go b/pkg/database/database.go index fcaa3521c..654694e36 100644 --- a/pkg/database/database.go +++ b/pkg/database/database.go @@ -2,13 +2,13 @@ package database import ( "database/sql" + "fmt" "log" "github.com/drone/drone/pkg/database/migrate" "github.com/drone/drone/pkg/database/schema" _ "github.com/go-sql-driver/mysql" - _ "github.com/lib/pq" _ "github.com/mattn/go-sqlite3" "github.com/russross/meddler" @@ -17,6 +17,13 @@ import ( // global instance of our database connection. var db *sql.DB +// Init connects to database and performs migration if necessary. +// +// Database driver name and data source information is provided by user +// from within command line, and error checking is deferred to sql.Open. +// +// Init will just bail out and returns error if driver name +// is not listed, no fallback nor default driver sets here. func Init(name, datasource string) error { driver := map[string]struct { Md *meddler.Database @@ -30,14 +37,14 @@ func Init(name, datasource string) error { meddler.MySQL, migrate.MySQL, }, - "postgresql": { - meddler.PostgreSQL, - migrate.PostgreSQL, - }, } - meddler.Default = driver[name].Md - migrate.Driver = driver[name].Mg + if drv, ok := driver[name]; ok { + meddler.Default = drv.Md + migrate.Driver = drv.Mg + } else { + return fmt.Errorf("%s driver not found", name) + } db, err := sql.Open(name, datasource) if err != nil {