package db import ( "errors" "sync" "github.com/jinzhu/gorm" _ "github.com/lib/pq" _ "github.com/mattn/go-sqlite3" ) const ( SQLITE_DRIVER = "sqlite3" POSTGRES_DRIVER = "postgres" ) type DB struct { orm *gorm.DB mutex *sync.Mutex driver string } // databe driver name //support databes 'sqlite3','postgres' func Open(driver string, args ...interface{}) (*DB, error) { if driver == "" { return nil, errors.New("Invalid driver name.") } d, err := gorm.Open(driver, args) if err != nil { return nil, err } return &DB{orm: d, mutex: &sync.Mutex{}, driver: driver}, nil } func (db DB) isSqlite() bool { if db.driver == SQLITE_DRIVER { return true } return false } func (db DB) isPostgres() bool { if db.driver == POSTGRES_DRIVER { return true } return false }