-
Notifications
You must be signed in to change notification settings - Fork 2
/
install.prod.go
executable file
·116 lines (90 loc) · 1.98 KB
/
install.prod.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// +build prod
package main
//bindConf 绑定启动配置, 启动时检查注册中心配置是否存在,不存在则引导用户输入配置参数并自动创建到注册中心
func (s *fsync) install() {
//api.port#//
s.Conf.API.SetMainConf(`{"address":":9090"}`)
//#api.port//
//api.appconf#//
//#api.appconf//
//api.cros#//
//#api.cros//
//api.jwt.prod#//
//#api.jwt.prod//
//api.metric#//
//#api.metric//
//db#//
//#db//
//cache#//
//#cache//
//queue#//
//#queue//
//cron.appconf#//
//#cron.appconf//
//cron.task#//
//#cron.task//
//cron.metric#//
//#cron.metric//
//mqc.server#//
//#mqc.server//
//mqc.queue#//
//#mqc.queue//
//mqc.metric#//
//#mqc.metric//
//web.port#//
//#web.port//
//web.static#//
//#web.static//
//web.metric#//
//#web.metric//
//ws.appconf#//
//#ws.appconf//
//ws.jwt#//
//#ws.jwt//
//ws.metric#//
//#ws.metric//
//rpc.port#//
//#rpc.port//
//rpc.metric#//
//#rpc.metric//
//自定义安装程序
s.Conf.API.Installer(func(c component.IContainer) error {
if !s.Conf.Confirm("创建数据库表结构,添加基础数据?") {
return nil
}
path, err := getSQLPath()
if err != nil {
return err
}
sqls, err := s.Conf.GetSQL(path)
if err != nil {
return err
}
db, err := c.GetDB()
if err != nil {
return err
}
for _, sql := range sqls {
if sql != "" {
if _, q, _, err := db.Execute(sql, map[string]interface{}{}); err != nil {
if !strings.Contains(err.Error(), "ORA-00942") {
s.Conf.Log.Errorf("执行SQL失败: %v %s\n", err, q)
}
}
}
}
return nil
})
}
//getSQLPath 获取getSQLPath
func getSQLPath() (string, error) {
gopath := os.Getenv("GOPATH")
if gopath == "" {
return "", fmt.Errorf("未配置环境变量GOPATH")
}
path := strings.Split(gopath, ";")
if len(path) == 0 {
return "", fmt.Errorf("环境变量GOPATH配置的路径为空")
}
return filepath.Join(path[0], "src/github.com/micro-plat/fsync/modules/const/sql"), nil
}