feat:完善项目信息

This commit is contained in:
henry
2021-12-28 10:57:13 +08:00
parent 7eb8e5c48b
commit ae25321694
5 changed files with 59 additions and 90 deletions

View File

@ -1,6 +1,6 @@
name: 中科元 name:
# domain 域名 # domain 域名
domain: http://192.168.0.145:8000 domain: http://127.0.0.1:8000
# token有效时间 # token有效时间
token_effect_time: 604800 token_effect_time: 604800
# multiple_login 多地登录 # multiple_login 多地登录
@ -12,6 +12,10 @@ server:
write_timeout: 5 write_timeout: 5
idle_timeout: 5 idle_timeout: 5
# ES 服务器
es_server:
host: http://192.168.0.188:9200
# RATE 限流器 # RATE 限流器
rate: rate:
# 每秒注入容器中数量 # 每秒注入容器中数量
@ -19,37 +23,12 @@ rate:
# 每个IP每秒请求最大次数 # 每个IP每秒请求最大次数
capacity: 100 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: cache:
# memory | redis # memory | redis
type: redis type: memory
redis: redis:
addr: "192.168.0.188:6379" addr: "127.0.0.1:6379"
password: ABCabc01 password:
db: 0 db: 0
max_active: 0 max_active: 0
max_idle: 1000 max_idle: 1000

View File

@ -1,9 +1,6 @@
package migrate package migrate
import ( import (
"SciencesServer/app/common/migrate"
"SciencesServer/serve/orm"
"SciencesServer/serve/orm/logic"
"fmt" "fmt"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
@ -11,25 +8,26 @@ import (
) )
type Config struct { type Config struct {
Debug bool `json:"debug" yaml:"debug"` Debug bool `json:"debug" yaml:"debug"`
Mode string `json:"mode" yaml:"mode"` Mode string `json:"mode" yaml:"mode"`
MaxLifetime int `json:"max_lifetime" yaml:"max_lifetime"` MaxLifetime int `json:"max_lifetime" yaml:"max_lifetime"`
MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"` MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"`
MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"` MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"`
Engines map[string]map[string]interface{} `json:"engines" yaml:"engines"` Engines map[string]interface{} `json:"engines" yaml:"engines"`
} }
type mysql struct { type Mysql struct {
host string Host string `yaml:"host"`
port int Port int `yaml:"port"`
database string Database string `yaml:"database"`
username string Username string `yaml:"username"`
password string Password string `yaml:"password"`
Parameters string `json:"parameters"`
} }
type sqlite struct { type Sqlite struct {
path string Path string `yaml:"path"`
name string Name string `yaml:"name"`
} }
var ( var (
@ -44,39 +42,40 @@ var (
file string file string
mode string mode string
_mysql = new(mysql) _mysql = new(Mysql)
_sqlite = new(sqlite) _sqlite = new(Sqlite)
) )
func init() { func init() {
Cmd.PersistentFlags().StringVarP(&file, "file", "f", "./default_engine.yaml", "文件存储现支持yaml文件默认./default_engine.yaml") 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(&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().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().IntVarP(&_mysql.Port, "mysql_port", "P", 3306, "端口号默认为3306")
Cmd.PersistentFlags().StringVarP(&_mysql.database, "mysql_database", "d", "", "数据库,默认为空") Cmd.PersistentFlags().StringVarP(&_mysql.Database, "mysql_database", "d", "", "数据库,默认为空")
Cmd.PersistentFlags().StringVarP(&_mysql.username, "mysql_username", "u", "root", "用户名默认为root") Cmd.PersistentFlags().StringVarP(&_mysql.Username, "mysql_username", "u", "root", "用户名默认为root")
Cmd.PersistentFlags().StringVarP(&_mysql.password, "mysql_password", "p", "", "密码,默认为空") Cmd.PersistentFlags().StringVarP(&_mysql.Password, "mysql_password", "p", "", "密码,默认为空")
Cmd.PersistentFlags().StringVarP(&_sqlite.path, "sqlite_path", "a", "data", "Sqlite文件存放地址默认data") Cmd.PersistentFlags().StringVar(&_mysql.Parameters, "mysql_parameters", "charset=utf8mb4,utf8&parseTime=True&loc=Local", "附加参数")
Cmd.PersistentFlags().StringVarP(&_sqlite.name, "sqlite_name", "n", "app.db", "Sqlite文件存放地址默认app.db") 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() { func run() {
fmt.Println("========================\n=== 初始化项目配置 ===\n========================") fmt.Println("========================\n=== 初始化项目配置 ===\n========================")
// 初始化数据引擎 // 初始化数据引擎
engine := orm.NewInstance( //engine := orm.NewInstance(
orm.WithDBMode(mode), // orm.WithDBMode(mode),
orm.WithMysqlOption(&logic.Mysql{ // orm.WithMysqlOption(&logic.Mysql{
Host: _mysql.host, Port: _mysql.port, // Host: _mysql.Host, Port: _mysql.Port,
Username: _mysql.username, Password: _mysql.password, // Username: _mysql.Username, Password: _mysql.Password,
Database: _mysql.database, Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Local", // Database: _mysql.Database, Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Local",
}), // }),
orm.WithSqliteOption(&logic.Sqlite{Path: _sqlite.path, Name: _sqlite.name}), // orm.WithSqliteOption(&logic.Sqlite{Path: _sqlite.Path, Name: _sqlite.Name}),
).Init() //).Init()
fmt.Println("========================\n=== 数据引擎创建成功 ===\n========================") fmt.Println("========================\n=== 数据引擎创建成功 ===\n========================")
// 迁移数据 // 迁移数据
migrate.NewInstance(migrate.WithGormDBOption(engine.Engine)).Handle() //migrate.NewInstance(migrate.WithGormDBOption(engine.Engine)).Handle()
if err := saveFile(file, &Config{ if err := saveFile(file, &Config{
Debug: true, Debug: true,
@ -84,19 +83,9 @@ func run() {
MaxLifetime: 3600, MaxLifetime: 3600,
MaxOpenConns: 2000, MaxOpenConns: 2000,
MaxIdleConns: 1000, MaxIdleConns: 1000,
Engines: map[string]map[string]interface{}{ Engines: map[string]interface{}{
"mysql": map[string]interface{}{ "mysql": _mysql,
"host": _mysql.host, "sqlite": _sqlite,
"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,
},
}, },
}); err != nil { }); err != nil {
fmt.Errorf("数据初始化文件错误:%v", err) fmt.Errorf("数据初始化文件错误:%v", err)

View File

@ -32,6 +32,7 @@ var (
) )
func init() { 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(&configFile, "setting", "s", "./default_setting.yaml", "项目配置文件,默认./default_setting.yaml")
Cmd.PersistentFlags().StringVarP(&engineFile, "engine", "e", "./default_engine.yaml", "项目数据配置文件,默认./default_engine.yaml") Cmd.PersistentFlags().StringVarP(&engineFile, "engine", "e", "./default_engine.yaml", "项目数据配置文件,默认./default_engine.yaml")
} }

View File

@ -1,13 +1,10 @@
package config package config
import "flag"
var ( var (
Mode = flag.String("mode", "release", "Development Environment") // debugtestrelease Mode string = "debug"
Version = flag.String("version", "v1.0", "IOT Version")
) )
// IsDebug 开发版本 // IsDebug 开发版本
func IsDebug() bool { func IsDebug() bool {
return *Mode == "debug" return Mode == "debug"
} }

View File

@ -6,9 +6,13 @@ import (
"testing" "testing"
) )
type Mysql struct {
Host string
}
type config struct { type config struct {
Version int Version int `yaml:"version"`
Mapping map[string]string Mapping *Mysql `yaml:"mapping"`
} }
func TestNewFile(t *testing.T) { func TestNewFile(t *testing.T) {
@ -23,9 +27,8 @@ func TestNewFile(t *testing.T) {
err = enc.Encode(config{ err = enc.Encode(config{
Version: 7, Version: 7,
Mapping: map[string]string{ Mapping: &Mysql{
"key": "value1", Host: "123",
"key2": "value2",
}, },
}) })
if err != nil { if err != nil {