From ae25321694e03bc09461e6f3ec821e0124cc2ece Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 28 Dec 2021 10:57:13 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E5=96=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .default_setting.yaml | 39 +++++-------------- cmd/migrate/init.go | 89 +++++++++++++++++++------------------------ cmd/serve/init.go | 1 + config/flag.go | 7 +--- utils/file_test.go | 13 ++++--- 5 files changed, 59 insertions(+), 90 deletions(-) diff --git a/.default_setting.yaml b/.default_setting.yaml index 308bfa8..377eb74 100644 --- a/.default_setting.yaml +++ b/.default_setting.yaml @@ -1,6 +1,6 @@ -name: 中科元 +name: # domain 域名 -domain: http://192.168.0.145:8000 +domain: http://127.0.0.1:8000 # token有效时间(秒) token_effect_time: 604800 # multiple_login 多地登录 @@ -12,6 +12,10 @@ server: write_timeout: 5 idle_timeout: 5 +# ES 服务器 +es_server: + host: http://192.168.0.188:9200 + # RATE 限流器 rate: # 每秒注入容器中数量 @@ -19,37 +23,12 @@ rate: # 每个IP每秒请求最大次数 capacity: 100 -# ENGINE 配置 -engine: - # 开启会输出sql日志 - debug: true - # db_mode - mysql | sqlite - db_mode: mysql - max_lifetime: 3600 - max_open_conns: 2000 - max_idle_conns: 1000 - table_prefix: - # 是否采用数据表复数 - complex: false - # MYSQL 配置 - mysql: - host: 127.0.0.1 - port: 3306 - user: appuser - password: ABCabc01 - db_name: sciences - parameters: charset=utf8mb4,utf8&parseTime=True&loc=Local - # SQLITE 配置 - sqlite: - path: data - name: app.db - cache: # memory | redis - type: redis + type: memory redis: - addr: "192.168.0.188:6379" - password: ABCabc01 + addr: "127.0.0.1:6379" + password: db: 0 max_active: 0 max_idle: 1000 diff --git a/cmd/migrate/init.go b/cmd/migrate/init.go index 6aa9d7a..c952748 100644 --- a/cmd/migrate/init.go +++ b/cmd/migrate/init.go @@ -1,9 +1,6 @@ package migrate import ( - "SciencesServer/app/common/migrate" - "SciencesServer/serve/orm" - "SciencesServer/serve/orm/logic" "fmt" "github.com/spf13/cobra" "gopkg.in/yaml.v2" @@ -11,25 +8,26 @@ import ( ) type Config struct { - Debug bool `json:"debug" yaml:"debug"` - Mode string `json:"mode" yaml:"mode"` - MaxLifetime int `json:"max_lifetime" yaml:"max_lifetime"` - MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"` - MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"` - Engines map[string]map[string]interface{} `json:"engines" yaml:"engines"` + Debug bool `json:"debug" yaml:"debug"` + Mode string `json:"mode" yaml:"mode"` + MaxLifetime int `json:"max_lifetime" yaml:"max_lifetime"` + MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"` + MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"` + Engines map[string]interface{} `json:"engines" yaml:"engines"` } -type mysql struct { - host string - port int - database string - username string - password string +type Mysql struct { + Host string `yaml:"host"` + Port int `yaml:"port"` + Database string `yaml:"database"` + Username string `yaml:"username"` + Password string `yaml:"password"` + Parameters string `json:"parameters"` } -type sqlite struct { - path string - name string +type Sqlite struct { + Path string `yaml:"path"` + Name string `yaml:"name"` } var ( @@ -44,39 +42,40 @@ var ( file string mode string - _mysql = new(mysql) - _sqlite = new(sqlite) + _mysql = new(Mysql) + _sqlite = new(Sqlite) ) func init() { Cmd.PersistentFlags().StringVarP(&file, "file", "f", "./default_engine.yaml", "文件存储,现支持yaml文件,默认./default_engine.yaml") Cmd.PersistentFlags().StringVarP(&mode, "mode", "m", "mysql", "数据引擎,支持mysql和sqlite,默认mysql") - Cmd.PersistentFlags().StringVarP(&_mysql.host, "mysql_host", "H", "127.0.0.1", "主机名,默认127.0.0.1") - Cmd.PersistentFlags().IntVarP(&_mysql.port, "mysql_port", "P", 3306, "端口号,默认为3306") - Cmd.PersistentFlags().StringVarP(&_mysql.database, "mysql_database", "d", "", "数据库,默认为空") - Cmd.PersistentFlags().StringVarP(&_mysql.username, "mysql_username", "u", "root", "用户名,默认为root") - Cmd.PersistentFlags().StringVarP(&_mysql.password, "mysql_password", "p", "", "密码,默认为空") - Cmd.PersistentFlags().StringVarP(&_sqlite.path, "sqlite_path", "a", "data", "Sqlite文件存放地址,默认data") - Cmd.PersistentFlags().StringVarP(&_sqlite.name, "sqlite_name", "n", "app.db", "Sqlite文件存放地址,默认app.db") + Cmd.PersistentFlags().StringVarP(&_mysql.Host, "mysql_host", "H", "127.0.0.1", "主机名,默认127.0.0.1") + Cmd.PersistentFlags().IntVarP(&_mysql.Port, "mysql_port", "P", 3306, "端口号,默认为3306") + Cmd.PersistentFlags().StringVarP(&_mysql.Database, "mysql_database", "d", "", "数据库,默认为空") + Cmd.PersistentFlags().StringVarP(&_mysql.Username, "mysql_username", "u", "root", "用户名,默认为root") + Cmd.PersistentFlags().StringVarP(&_mysql.Password, "mysql_password", "p", "", "密码,默认为空") + Cmd.PersistentFlags().StringVar(&_mysql.Parameters, "mysql_parameters", "charset=utf8mb4,utf8&parseTime=True&loc=Local", "附加参数") + Cmd.PersistentFlags().StringVarP(&_sqlite.Path, "sqlite_path", "a", "data", "Sqlite文件存放地址,默认data") + Cmd.PersistentFlags().StringVarP(&_sqlite.Name, "sqlite_name", "n", "app.db", "Sqlite文件存放地址,默认app.db") } func run() { fmt.Println("========================\n=== 初始化项目配置 ===\n========================") // 初始化数据引擎 - engine := orm.NewInstance( - orm.WithDBMode(mode), - orm.WithMysqlOption(&logic.Mysql{ - Host: _mysql.host, Port: _mysql.port, - Username: _mysql.username, Password: _mysql.password, - Database: _mysql.database, Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Local", - }), - orm.WithSqliteOption(&logic.Sqlite{Path: _sqlite.path, Name: _sqlite.name}), - ).Init() + //engine := orm.NewInstance( + // orm.WithDBMode(mode), + // orm.WithMysqlOption(&logic.Mysql{ + // Host: _mysql.Host, Port: _mysql.Port, + // Username: _mysql.Username, Password: _mysql.Password, + // Database: _mysql.Database, Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Local", + // }), + // orm.WithSqliteOption(&logic.Sqlite{Path: _sqlite.Path, Name: _sqlite.Name}), + //).Init() fmt.Println("========================\n=== 数据引擎创建成功 ===\n========================") // 迁移数据 - migrate.NewInstance(migrate.WithGormDBOption(engine.Engine)).Handle() + //migrate.NewInstance(migrate.WithGormDBOption(engine.Engine)).Handle() if err := saveFile(file, &Config{ Debug: true, @@ -84,19 +83,9 @@ func run() { MaxLifetime: 3600, MaxOpenConns: 2000, MaxIdleConns: 1000, - Engines: map[string]map[string]interface{}{ - "mysql": map[string]interface{}{ - "host": _mysql.host, - "port": _mysql.port, - "database": _mysql.database, - "username": _mysql.username, - "password": _mysql.password, - "parameters": "charset=utf8mb4,utf8&parseTime=True&loc=Local", - }, - "sqlite": map[string]interface{}{ - "path": _sqlite.path, - "name": _sqlite.name, - }, + Engines: map[string]interface{}{ + "mysql": _mysql, + "sqlite": _sqlite, }, }); err != nil { fmt.Errorf("数据初始化文件错误:%v", err) diff --git a/cmd/serve/init.go b/cmd/serve/init.go index bebe24d..62d5539 100644 --- a/cmd/serve/init.go +++ b/cmd/serve/init.go @@ -32,6 +32,7 @@ var ( ) func init() { + Cmd.PersistentFlags().StringVarP(&config.Mode, "mode", "m", "debug", "项目模式debug/release,默认debug") Cmd.PersistentFlags().StringVarP(&configFile, "setting", "s", "./default_setting.yaml", "项目配置文件,默认./default_setting.yaml") Cmd.PersistentFlags().StringVarP(&engineFile, "engine", "e", "./default_engine.yaml", "项目数据配置文件,默认./default_engine.yaml") } diff --git a/config/flag.go b/config/flag.go index e785351..1b31666 100644 --- a/config/flag.go +++ b/config/flag.go @@ -1,13 +1,10 @@ package config -import "flag" - var ( - Mode = flag.String("mode", "release", "Development Environment") // debug,test,release - Version = flag.String("version", "v1.0", "IOT Version") + Mode string = "debug" ) // IsDebug 开发版本 func IsDebug() bool { - return *Mode == "debug" + return Mode == "debug" } diff --git a/utils/file_test.go b/utils/file_test.go index 26636e5..ebb30c2 100644 --- a/utils/file_test.go +++ b/utils/file_test.go @@ -6,9 +6,13 @@ import ( "testing" ) +type Mysql struct { + Host string +} + type config struct { - Version int - Mapping map[string]string + Version int `yaml:"version"` + Mapping *Mysql `yaml:"mapping"` } func TestNewFile(t *testing.T) { @@ -23,9 +27,8 @@ func TestNewFile(t *testing.T) { err = enc.Encode(config{ Version: 7, - Mapping: map[string]string{ - "key": "value1", - "key2": "value2", + Mapping: &Mysql{ + Host: "123", }, }) if err != nil {