Skip to content

Commit

Permalink
Merge pull request #91 from deliveryhero/mysql-add-reject-read-only
Browse files Browse the repository at this point in the history
Mysql add reject read only
  • Loading branch information
Karthik Nayak committed Jul 14, 2020
2 parents 64f75bd + a036e50 commit 4342bff
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ See more on ```example.go```

# Libraries used

See ```Gopkg.toml```
See ```go.mod```
11 changes: 8 additions & 3 deletions fddb/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ type DBConfig struct {
}

type MysqlOptions struct {
Timeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
Timeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
RejectReadOnly bool
}

var availableDrivers = map[string]DBConfig{
Expand Down Expand Up @@ -148,6 +149,10 @@ func (c DBConfig) mySqlConnString(host, usrPwd string) string {
dsnParams = append(dsnParams, "writeTimeout="+c.MysqlOptions.WriteTimeout.String())
}

if c.MysqlOptions.RejectReadOnly {
dsnParams = append(dsnParams, "rejectReadOnly=true")
}

if len(dsnParams) > 0 {
return fmt.Sprintf("%s@tcp(%s)/%s?%s", usrPwd, host, c.DB, strings.Join(dsnParams, "&"))
}
Expand Down
14 changes: 8 additions & 6 deletions fddb/config_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package fddb

import (
"github.com/stretchr/testify/assert"
"testing"

"github.com/stretchr/testify/assert"
)

func TestDBConfig(t *testing.T) {
Expand Down Expand Up @@ -153,15 +154,16 @@ func TestDBConfigConnFullString_MySQL(t *testing.T) {
User: "root",
DB: "test",
MysqlOptions: MysqlOptions{
Timeout: 10000000,
ReadTimeout: 20000000,
WriteTimeout: 30000000,
Timeout: 10000000,
ReadTimeout: 20000000,
WriteTimeout: 30000000,
RejectReadOnly: true,
},
}
assert.Equal(t, c.ConnString(), "root@tcp(127.0.0.1:3306)/test?timeout=10ms&readTimeout=20ms&writeTimeout=30ms")
assert.Equal(t, c.ConnString(), "root@tcp(127.0.0.1:3306)/test?timeout=10ms&readTimeout=20ms&writeTimeout=30ms&rejectReadOnly=true")

c.Password = "r007"
assert.Equal(t, c.ConnString(), "root:r007@tcp(127.0.0.1:3306)/test?timeout=10ms&readTimeout=20ms&writeTimeout=30ms")
assert.Equal(t, c.ConnString(), "root:r007@tcp(127.0.0.1:3306)/test?timeout=10ms&readTimeout=20ms&writeTimeout=30ms&rejectReadOnly=true")
}

func TestDBConfigConnString_Postgres(t *testing.T) {
Expand Down

0 comments on commit 4342bff

Please sign in to comment.