Browse Source

fix wait db up

pull/55/head v1.5.1
yedf2 5 years ago
parent
commit
81e4edf11f
  1. 1
      app/main.go
  2. 10
      common/types.go
  3. 7
      examples/data.go

1
app/main.go

@ -37,6 +37,7 @@ func main() {
} }
dtmcli.SetCurrentDBType(common.DtmConfig.DB["driver"]) dtmcli.SetCurrentDBType(common.DtmConfig.DB["driver"])
if os.Args[1] != "dtmsvr" { // 实际线上运行,只启动dtmsvr,不准备table相关的数据 if os.Args[1] != "dtmsvr" { // 实际线上运行,只启动dtmsvr,不准备table相关的数据
common.WaitDBUp()
dtmsvr.PopulateDB(true) dtmsvr.PopulateDB(true)
examples.PopulateDB(true) examples.PopulateDB(true)
} }

10
common/types.go

@ -192,3 +192,13 @@ func checkConfig() string {
} }
return "" return ""
} }
// WaitDBUp wait for db to go up
func WaitDBUp() {
sdb, err := dtmimp.StandaloneDB(DtmConfig.DB)
dtmimp.FatalIfError(err)
for _, err := dtmimp.DBExec(sdb, "select 1"); err != nil; { // wait for mysql to start
time.Sleep(3 * time.Second)
_, err = dtmimp.DBExec(sdb, "select 1")
}
}

7
examples/data.go

@ -4,7 +4,6 @@ import (
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"strings" "strings"
"time"
"github.com/yedf/dtm/common" "github.com/yedf/dtm/common"
"github.com/yedf/dtm/dtmcli/dtmimp" "github.com/yedf/dtm/dtmcli/dtmimp"
@ -48,12 +47,6 @@ func resetXaData() {
// PopulateDB populate example mysql data // PopulateDB populate example mysql data
func PopulateDB(skipDrop bool) { func PopulateDB(skipDrop bool) {
sdb := sdbGet()
for _, err := dtmimp.DBExec(sdb, "select 1"); err != nil; { // wait for mysql to start
time.Sleep(3 * time.Second)
_, err = dtmimp.DBExec(sdb, "select 1")
}
resetXaData() resetXaData()
file := fmt.Sprintf("%s/examples.%s.sql", common.GetCallerCodeDir(), config.DB["driver"]) file := fmt.Sprintf("%s/examples.%s.sql", common.GetCallerCodeDir(), config.DB["driver"])
RunSQLScript(config.DB, file, skipDrop) RunSQLScript(config.DB, file, skipDrop)

Loading…
Cancel
Save