check test databases
This commit is contained in:
parent
7f1493f27e
commit
c2c3aab10a
|
@ -22,7 +22,7 @@ jobs:
|
|||
POSTGRES_USER: root
|
||||
POSTGRES_DB: xorm_test
|
||||
|
||||
- image: microsoft/mssql-server-linux:2017-CU11
|
||||
- image: microsoft/mssql-server-linux:latest
|
||||
environment:
|
||||
ACCEPT_EULA: Y
|
||||
SA_PASSWORD: yourStrong(!)Password
|
||||
|
@ -30,16 +30,6 @@ jobs:
|
|||
|
||||
working_directory: /go/src/github.com/go-xorm/xorm
|
||||
steps:
|
||||
- run:
|
||||
name: Wait for MSSQL
|
||||
command: >
|
||||
c=0;
|
||||
for i in `seq 30`; do
|
||||
echo "Waiting for mssql"
|
||||
sqlcmd -H localhost -U sa -P "yourStrong(!)Password" -Q "CREATE DATABASE xorm_test" > /dev/null > /dev/null && c=0 && break || c=$? && sleep 1
|
||||
done;
|
||||
exit $c
|
||||
|
||||
- checkout
|
||||
|
||||
- run: go get -t -d -v ./...
|
||||
|
|
31
xorm_test.go
31
xorm_test.go
|
@ -1,6 +1,7 @@
|
|||
package xorm
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
@ -35,6 +36,36 @@ func createEngine(dbType, connStr string) error {
|
|||
var err error
|
||||
|
||||
if !*cluster {
|
||||
// create databases if not exist
|
||||
db, err := sql.Open(dbType, connStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
switch strings.ToUpper(dbType) {
|
||||
case core.MSSQL:
|
||||
if _, err = db.Exec("If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test; END;"); err != nil {
|
||||
return fmt.Errorf("db.Exec: %v", err)
|
||||
}
|
||||
case core.POSTGRES:
|
||||
rows, err := db.Query(fmt.Sprintf("SELECT 1 FROM pg_database WHERE datname = 'xorm_test'"))
|
||||
if err != nil {
|
||||
return fmt.Errorf("db.Query: %v", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
if rows.Next() {
|
||||
break
|
||||
}
|
||||
if _, err = db.Exec("CREATE DATABASE xorm_test"); err != nil {
|
||||
return fmt.Errorf("db.Exec: %v", err)
|
||||
}
|
||||
case core.MYSQL:
|
||||
if _, err = db.Exec("CREATE DATABASE IF NOT EXISTS xorm_test"); err != nil {
|
||||
return fmt.Errorf("db.Exec: %v", err)
|
||||
}
|
||||
}
|
||||
db.Close()
|
||||
|
||||
testEngine, err = NewEngine(dbType, connStr)
|
||||
} else {
|
||||
testEngine, err = NewEngineGroup(dbType, strings.Split(connStr, *splitter))
|
||||
|
|
Loading…
Reference in New Issue