check test databases
This commit is contained in:
parent
7f1493f27e
commit
c2c3aab10a
|
@ -22,7 +22,7 @@ jobs:
|
||||||
POSTGRES_USER: root
|
POSTGRES_USER: root
|
||||||
POSTGRES_DB: xorm_test
|
POSTGRES_DB: xorm_test
|
||||||
|
|
||||||
- image: microsoft/mssql-server-linux:2017-CU11
|
- image: microsoft/mssql-server-linux:latest
|
||||||
environment:
|
environment:
|
||||||
ACCEPT_EULA: Y
|
ACCEPT_EULA: Y
|
||||||
SA_PASSWORD: yourStrong(!)Password
|
SA_PASSWORD: yourStrong(!)Password
|
||||||
|
@ -30,16 +30,6 @@ jobs:
|
||||||
|
|
||||||
working_directory: /go/src/github.com/go-xorm/xorm
|
working_directory: /go/src/github.com/go-xorm/xorm
|
||||||
steps:
|
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
|
- checkout
|
||||||
|
|
||||||
- run: go get -t -d -v ./...
|
- run: go get -t -d -v ./...
|
||||||
|
|
31
xorm_test.go
31
xorm_test.go
|
@ -1,6 +1,7 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
@ -35,6 +36,36 @@ func createEngine(dbType, connStr string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if !*cluster {
|
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)
|
testEngine, err = NewEngine(dbType, connStr)
|
||||||
} else {
|
} else {
|
||||||
testEngine, err = NewEngineGroup(dbType, strings.Split(connStr, *splitter))
|
testEngine, err = NewEngineGroup(dbType, strings.Split(connStr, *splitter))
|
||||||
|
|
Loading…
Reference in New Issue