@@ -123,15 +123,6 @@ func (m *Mysql) Open(url string) (database.Driver, error) {
123
123
q .Set ("multiStatements" , "true" )
124
124
purl .RawQuery = q .Encode ()
125
125
126
- c , err := urlToMySQLConfig (* migrate .FilterCustomQuery (purl ))
127
- if err != nil {
128
- return nil , err
129
- }
130
- db , err := sql .Open ("mysql" , c .FormatDSN ())
131
- if err != nil {
132
- return nil , err
133
- }
134
-
135
126
migrationsTable := purl .Query ().Get ("x-migrations-table" )
136
127
if len (migrationsTable ) == 0 {
137
128
migrationsTable = DefaultMigrationsTable
@@ -151,9 +142,13 @@ func (m *Mysql) Open(url string) (database.Driver, error) {
151
142
return nil , ErrAppendPEM
152
143
}
153
144
154
- certs , err := tls .LoadX509KeyPair (purl .Query ().Get ("x-tls-cert" ), purl .Query ().Get ("x-tls-key" ))
155
- if err != nil {
156
- return nil , err
145
+ clientCert := make ([]tls.Certificate , 0 , 1 )
146
+ if purl .Query ().Get ("x-tls-cert" ) != "" && purl .Query ().Get ("x-tls-key" ) != "" {
147
+ certs , err := tls .LoadX509KeyPair (purl .Query ().Get ("x-tls-cert" ), purl .Query ().Get ("x-tls-key" ))
148
+ if err != nil {
149
+ return nil , err
150
+ }
151
+ clientCert = append (clientCert , certs )
157
152
}
158
153
159
154
insecureSkipVerify := false
@@ -167,12 +162,21 @@ func (m *Mysql) Open(url string) (database.Driver, error) {
167
162
168
163
mysql .RegisterTLSConfig (ctls , & tls.Config {
169
164
RootCAs : rootCertPool ,
170
- Certificates : []tls. Certificate { certs } ,
165
+ Certificates : clientCert ,
171
166
InsecureSkipVerify : insecureSkipVerify ,
172
167
})
173
168
}
174
169
}
175
170
171
+ c , err := urlToMySQLConfig (* migrate .FilterCustomQuery (purl ))
172
+ if err != nil {
173
+ return nil , err
174
+ }
175
+ db , err := sql .Open ("mysql" , c .FormatDSN ())
176
+ if err != nil {
177
+ return nil , err
178
+ }
179
+
176
180
mx , err := WithInstance (db , & Config {
177
181
DatabaseName : purl .Path ,
178
182
MigrationsTable : migrationsTable ,
0 commit comments