@@ -9,19 +9,19 @@ func (database *Database) remoteMysqldumpCmdBuilder(additionalArgs []string, use
99 var args []string
1010
1111 if database .User != "" {
12- args = append (args , "-u" + database .User )
12+ args = append (args , shell . Quote ( "-u" + database .User ) )
1313 }
1414
1515 if database .Password != "" {
16- args = append (args , "-p" + database .Password )
16+ args = append (args , shell . Quote ( "-p" + database .Password ) )
1717 }
1818
1919 if database .Hostname != "" {
20- args = append (args , "-h" + database .Hostname )
20+ args = append (args , shell . Quote ( "-h" + database .Hostname ) )
2121 }
2222
2323 if database .Port != "" {
24- args = append (args , "-P" + database .Port )
24+ args = append (args , shell . Quote ( "-P" + database .Port ) )
2525 }
2626
2727 if len (args ) > 0 {
@@ -35,15 +35,21 @@ func (database *Database) remoteMysqldumpCmdBuilder(additionalArgs []string, use
3535 }
3636
3737 // schema
38- args = append (args , database .Schema )
38+ args = append (args , shell . Quote ( database .Schema ) )
3939
4040 // include
4141 if useFilter && len (includeArgs ) > 0 {
4242 args = append (args , includeArgs ... )
4343 }
4444
4545 cmd := []string {"mysqldump" }
46- cmd = append (cmd , shell .QuoteValues (args ... )... )
46+
47+ // add custom options (raw)
48+ if database .Options .Mysqldump != "" {
49+ cmd = append (cmd , database .Options .Mysqldump )
50+ }
51+
52+ cmd = append (cmd , args ... )
4753 cmd = append (cmd , "|" , "gzip" , "--stdout" )
4854
4955 return database .Connection .RawShellCommandBuilder (cmd ... )
@@ -53,53 +59,63 @@ func (database *Database) remoteMysqlCmdBuilder(args ...string) []interface{} {
5359 args = append (args , "-BN" )
5460
5561 if database .User != "" {
56- args = append (args , "-u" + database .User )
62+ args = append (args , shell . Quote ( "-u" + database .User ) )
5763 }
5864
5965 if database .Password != "" {
60- args = append (args , "-p" + database .Password )
66+ args = append (args , shell . Quote ( "-p" + database .Password ) )
6167 }
6268
6369 if database .Hostname != "" {
64- args = append (args , "-h" + database .Hostname )
70+ args = append (args , shell . Quote ( "-h" + database .Hostname ) )
6571 }
6672
6773 if database .Port != "" {
68- args = append (args , "-P" + database .Port )
74+ args = append (args , shell . Quote ( "-P" + database .Port ) )
6975 }
7076
7177 if database .Schema != "" {
72- args = append (args , database .Schema )
78+ args = append (args , shell . Quote ( database .Schema ) )
7379 }
7480
75- return database .Connection .CommandBuilder ("mysql" , args ... )
81+ // append options in raw
82+ if database .Options .Mysqldump != "" {
83+ args = append (args , database .Options .Mysql )
84+ }
85+
86+ return database .Connection .RawCommandBuilder ("mysql" , args ... )
7687}
7788
7889
7990func (database * Database ) remoteMysqlCmdBuilderUncompress (args ... string ) []interface {} {
8091 args = append (args , "-BN" )
8192
8293 if database .User != "" {
83- args = append (args , "-u" + database .User )
94+ args = append (args , shell . Quote ( "-u" + database .User ) )
8495 }
8596
8697 if database .Password != "" {
87- args = append (args , "-p" + database .Password )
98+ args = append (args , shell . Quote ( "-p" + database .Password ) )
8899 }
89100
90101 if database .Hostname != "" {
91- args = append (args , "-h" + database .Hostname )
102+ args = append (args , shell . Quote ( "-h" + database .Hostname ) )
92103 }
93104
94105 if database .Port != "" {
95- args = append (args , "-P" + database .Port )
106+ args = append (args , shell .Quote ("-P" + database .Port ))
107+ }
108+
109+ // add custom options (raw)
110+ if database .Options .Mysqldump != "" {
111+ args = append (args , database .Options .Mysql )
96112 }
97113
98114 if database .Schema != "" {
99- args = append (args , database .Schema )
115+ args = append (args , shell . Quote ( database .Schema ) )
100116 }
101117
102- cmd := []string {"gunzip" , "--stdout" , "|" , "mysql" , strings .Join (shell . QuoteValues ( args ... ) , " " )}
118+ cmd := []string {"gunzip" , "--stdout" , "|" , "mysql" , strings .Join (args , " " )}
103119
104120 return database .Connection .RawShellCommandBuilder (cmd ... )
105121}
0 commit comments