@@ -17,7 +17,7 @@ import (
17
17
var CmdConvert = cli.Command {
18
18
Name : "convert" ,
19
19
Usage : "Convert the database" ,
20
- Description : "A command to convert an existing MySQL database from utf8 to utf8mb4" ,
20
+ Description : "A command to convert an existing MySQL database from utf8 to utf8mb4 or MSSQL database from varchar to nvarchar " ,
21
21
Action : runConvert ,
22
22
}
23
23
@@ -35,17 +35,22 @@ func runConvert(ctx *cli.Context) error {
35
35
log .Info ("Log path: %s" , setting .Log .RootPath )
36
36
log .Info ("Configuration file: %s" , setting .CustomConf )
37
37
38
- if ! setting .Database .Type .IsMySQL () {
39
- fmt .Println ("This command can only be used with a MySQL database" )
40
- return nil
38
+ switch {
39
+ case setting .Database .Type .IsMySQL ():
40
+ if err := db .ConvertUtf8ToUtf8mb4 (); err != nil {
41
+ log .Fatal ("Failed to convert database from utf8 to utf8mb4: %v" , err )
42
+ return err
43
+ }
44
+ fmt .Println ("Converted successfully, please confirm your database's character set is now utf8mb4" )
45
+ case setting .Database .Type .IsMSSQL ():
46
+ if err := db .ConvertVarcharToNVarchar (); err != nil {
47
+ log .Fatal ("Failed to convert database from varchar to nvarchar: %v" , err )
48
+ return err
49
+ }
50
+ fmt .Println ("Converted successfully, please confirm your database's all columns character is NVARCHAR now" )
51
+ default :
52
+ fmt .Println ("This command can only be used with a MySQL or MSSQL database" )
41
53
}
42
54
43
- if err := db .ConvertUtf8ToUtf8mb4 (); err != nil {
44
- log .Fatal ("Failed to convert database from utf8 to utf8mb4: %v" , err )
45
- return err
46
- }
47
-
48
- fmt .Println ("Converted successfully, please confirm your database's character set is now utf8mb4" )
49
-
50
55
return nil
51
56
}
0 commit comments