diff --git a/drivers/goracle.go b/goracle_driver.go similarity index 90% rename from drivers/goracle.go rename to goracle_driver.go index eaee2026..f24fe339 100644 --- a/drivers/goracle.go +++ b/goracle_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "errors" @@ -7,9 +7,9 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("goracle", &goracleDriver{}) -} +// func init() { +// core.RegisterDriver("goracle", &goracleDriver{}) +// } type goracleDriver struct { } diff --git a/drivers/mymysql.go b/mymysql_driver.go similarity index 93% rename from drivers/mymysql.go rename to mymysql_driver.go index f1b4fa23..a4e726a4 100644 --- a/drivers/mymysql.go +++ b/mymysql_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "errors" @@ -8,9 +8,9 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("mymysql", &mymysqlDriver{}) -} +// func init() { +// core.RegisterDriver("mymysql", &mymysqlDriver{}) +// } type mymysqlDriver struct { } diff --git a/drivers/mysql.go b/mysql_driver.go similarity index 92% rename from drivers/mysql.go rename to mysql_driver.go index ccc2d823..c36fa8b6 100644 --- a/drivers/mysql.go +++ b/mysql_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "regexp" @@ -7,9 +7,9 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("mysql", &mysqlDriver{}) -} +// func init() { +// core.RegisterDriver("mysql", &mysqlDriver{}) +// } type mysqlDriver struct { } diff --git a/drivers/oci.go b/oci8_driver.go similarity index 76% rename from drivers/oci.go rename to oci8_driver.go index b6337797..5bb1d16c 100644 --- a/drivers/oci.go +++ b/oci8_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "errors" @@ -7,16 +7,16 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("oci", &ociDriver{}) -} +// func init() { +// core.RegisterDriver("oci8", &oci8Driver{}) +// } -type ociDriver struct { +type oci8Driver struct { } //dataSourceName=user/password@ipv4:port/dbname //dataSourceName=user/password@[ipv6]:port/dbname -func (p *ociDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) { +func (p *oci8Driver) Parse(driverName, dataSourceName string) (*core.Uri, error) { db := &core.Uri{DbType: core.ORACLE} dsnPattern := regexp.MustCompile( `^(?P.*)\/(?P.*)@` + // user:password@ diff --git a/drivers/odbc.go b/odbc_driver.go similarity index 86% rename from drivers/odbc.go rename to odbc_driver.go index 01f2bb37..0f6d4e18 100644 --- a/drivers/odbc.go +++ b/odbc_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "errors" @@ -7,9 +7,9 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("odbc", &odbcDriver{}) -} +// func init() { +// core.RegisterDriver("odbc", &odbcDriver{}) +// } type odbcDriver struct { } diff --git a/drivers/pq.go b/pq_driver.go similarity index 91% rename from drivers/pq.go rename to pq_driver.go index 09756dea..a5bb6718 100644 --- a/drivers/pq.go +++ b/pq_driver.go @@ -1,4 +1,4 @@ -package drivers +package xorm import ( "errors" @@ -8,9 +8,9 @@ import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("postgres", &pqDriver{}) -} +// func init() { +// core.RegisterDriver("postgres", &pqDriver{}) +// } type pqDriver struct { } diff --git a/drivers/sqlite3.go b/sqlite3_driver.go similarity index 72% rename from drivers/sqlite3.go rename to sqlite3_driver.go index 2ba8061a..2ecd9edf 100644 --- a/drivers/sqlite3.go +++ b/sqlite3_driver.go @@ -1,12 +1,12 @@ -package drivers +package xorm import ( "github.com/go-xorm/core" ) -func init() { - core.RegisterDriver("sqlite3", &sqlite3Driver{}) -} +// func init() { +// core.RegisterDriver("sqlite3", &sqlite3Driver{}) +// } type sqlite3Driver struct { } diff --git a/xorm.go b/xorm.go index 705b61a0..38db6d4f 100644 --- a/xorm.go +++ b/xorm.go @@ -12,7 +12,6 @@ import ( "github.com/go-xorm/core" "github.com/go-xorm/xorm/caches" - _ "github.com/go-xorm/xorm/drivers" ) const ( @@ -20,22 +19,26 @@ const ( ) func init() { - provided_dialects := map[string]struct { - dbType core.DbType - get func() core.Dialect + + providedDrvsNDialects := map[string]struct { + dbType core.DbType + getDriver func() core.Driver + getDialect func() core.Dialect }{ - "odbc": {"mssql", func() core.Dialect { return &mssql{} }}, - "mysql": {"mysql", func() core.Dialect { return &mysql{} }}, - "mymysql": {"mysql", func() core.Dialect { return &mysql{} }}, - "oci8": {"oracle", func() core.Dialect { return &oracle{} }}, - "postgres": {"postgres", func() core.Dialect { return &postgres{} }}, - "sqlite3": {"sqlite3", func() core.Dialect { return &sqlite3{} }}, + "odbc": {"mssql", func() core.Driver { return &odbcDriver{} }, func() core.Dialect { return &mssql{} }}, // !nashtsai! TODO change this when supporting MS Access + "mysql": {"mysql", func() core.Driver { return &mysqlDriver{} }, func() core.Dialect { return &mysql{} }}, + "mymysql": {"mysql", func() core.Driver { return &mymysqlDriver{} }, func() core.Dialect { return &mysql{} }}, + "postgres": {"postgres", func() core.Driver { return &pqDriver{} }, func() core.Dialect { return &postgres{} }}, + "sqlite3": {"sqlite3", func() core.Driver { return &sqlite3Driver{} }, func() core.Dialect { return &sqlite3{} }}, + "oci8": {"oracle", func() core.Driver { return &oci8Driver{} }, func() core.Dialect { return &oracle{} }}, + "goracle": {"oracle", func() core.Driver { return &goracleDriver{} }, func() core.Dialect { return &oracle{} }}, } - for k, v := range provided_dialects { - _, err := sql.Open(string(k), "") + for driverName, v := range providedDrvsNDialects { + _, err := sql.Open(driverName, "") if err == nil { - core.RegisterDialect(v.dbType, v.get()) + core.RegisterDriver(driverName, v.getDriver()) + core.RegisterDialect(v.dbType, v.getDialect()) } } }