diff --git a/server/service/system/sys_auto_code_pgsql.go b/server/service/system/sys_auto_code_pgsql.go index 1f0b1b15..659b9e44 100644 --- a/server/service/system/sys_auto_code_pgsql.go +++ b/server/service/system/sys_auto_code_pgsql.go @@ -7,6 +7,7 @@ import ( "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" + "strings" ) var AutoCodePgsql = new(autoCodePgsql) @@ -43,34 +44,46 @@ func (a *autoCodePgsql) GetTables(dbName string) (data []response.Table, err err func (a *autoCodePgsql) GetColumn(tableName string, dbName string) (data []response.Column, err error) { // todo 数据获取不全, 待完善sql sql := ` - SELECT columns.COLUMN_NAME as column_name, - columns.DATA_TYPE as data_type, - CASE - columns.DATA_TYPE - WHEN 'text' THEN - concat_ws('', '', columns.CHARACTER_MAXIMUM_LENGTH) - WHEN 'varchar' THEN - concat_ws('', '', columns.CHARACTER_MAXIMUM_LENGTH) - WHEN 'smallint' THEN - concat_ws(',', columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE) - WHEN 'decimal' THEN - concat_ws(',', columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE) - WHEN 'integer' THEN - concat_ws('', '', columns.NUMERIC_PRECISION) - WHEN 'bigint' THEN - concat_ws('', '', columns.NUMERIC_PRECISION) - ELSE '' - END AS data_type_long - FROM INFORMATION_SCHEMA.COLUMNS columns - WHERE table_catalog = ? - and table_schema = ? - and table_name = ? + SELECT columns.COLUMN_NAME as column_name, + columns.DATA_TYPE as data_type, + CASE + columns.DATA_TYPE + WHEN 'text' THEN + concat_ws('', '', columns.CHARACTER_MAXIMUM_LENGTH) + WHEN 'varchar' THEN + concat_ws('', '', columns.CHARACTER_MAXIMUM_LENGTH) + WHEN 'smallint' THEN + concat_ws(',', columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE) + WHEN 'decimal' THEN + concat_ws(',', columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE) + WHEN 'integer' THEN + concat_ws('', '', columns.NUMERIC_PRECISION) + WHEN 'bigint' THEN + concat_ws('', '', columns.NUMERIC_PRECISION) + ELSE '' + END AS data_type_long, + (select description.description + from pg_description description + where description.objoid = (select attribute.attrelid + from pg_attribute attribute + where attribute.attrelid = + (select oid from pg_class class where class.relname = '@table_name') and attname =columns.COLUMN_NAME ) + and description.objsubid = (select attribute.attnum + from pg_attribute attribute + where attribute.attrelid = + (select oid from pg_class class where class.relname = '@table_name') and attname =columns.COLUMN_NAME )) as column_comment + FROM INFORMATION_SCHEMA.COLUMNS columns + WHERE table_catalog = '@table_catalog' + and table_schema = 'public' + and table_name = '@table_name'; ` var entities []response.Column db, _err := gorm.Open(postgres.Open(global.GVA_CONFIG.Pgsql.LinkDsn(dbName)), &gorm.Config{Logger: logger.Default.LogMode(logger.Info)}) if _err != nil { return nil, errors.Wrapf(err, "[pgsql] 连接 数据库(%s)的表(%s)失败!", dbName, tableName) } - err = db.Raw(sql, dbName, "public", tableName).Scan(&entities).Error + sql = strings.ReplaceAll(sql, "@table_catalog", dbName) + sql = strings.ReplaceAll(sql, "@table_name", tableName) + err = db.Raw(sql).Scan(&entities).Error return entities, err } diff --git a/server/service/system/sys_initdb_mysql.go b/server/service/system/sys_initdb_mysql.go index b55eb859..37cd21f0 100644 --- a/server/service/system/sys_initdb_mysql.go +++ b/server/service/system/sys_initdb_mysql.go @@ -24,7 +24,7 @@ func (initDBService *InitDBService) writeMysqlConfig(mysql config.Mysql) error { for k, v := range cs { global.GVA_VP.Set(k, v) } - global.GVA_VP.Set("jwt.signing-key", uuid.NewV4()) + global.GVA_VP.Set("jwt.signing-key", uuid.NewV4().String()) return global.GVA_VP.WriteConfig() } diff --git a/server/service/system/sys_initdb_pgsql.go b/server/service/system/sys_initdb_pgsql.go index 605f362e..76234ae1 100644 --- a/server/service/system/sys_initdb_pgsql.go +++ b/server/service/system/sys_initdb_pgsql.go @@ -23,7 +23,7 @@ func (initDBService *InitDBService) writePgsqlConfig(pgsql config.Pgsql) error { for k, v := range cs { global.GVA_VP.Set(k, v) } - global.GVA_VP.Set("jwt.signing-key", uuid.NewV4()) + global.GVA_VP.Set("jwt.signing-key", uuid.NewV4().String()) return global.GVA_VP.WriteConfig() } @@ -69,7 +69,7 @@ func (initDBService *InitDBService) initPgsqlDB(conf request.InitDB) error { // initPgsqlData pgsql 初始化数据 // Author [SliverHorn](https://github.com/SliverHorn) func (initDBService *InitDBService) initPgsqlData() error { - return model.MysqlDataInitialize( + return model.PgsqlDataInitialize( system.Api, system.User, system.Casbin,