1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-23 07:09:43 +02:00

Refactoring of database init code

This commit is contained in:
Harvey Kandola 2018-09-12 20:03:34 +01:00
parent d7fea2125f
commit 3bccd6a537
7 changed files with 155 additions and 134 deletions

View file

@ -46,23 +46,18 @@ func Check(runtime *env.Runtime) bool {
if rows.Next() {
err = rows.Scan(&version, &dbComment, &charset, &collation)
}
if err == nil {
err = rows.Err() // get any error encountered during iteration
}
if err != nil {
runtime.Log.Error("no MySQL configuration returned", err)
web.SiteInfo.Issue = "no MySQL configuration return issue: " + err.Error()
runtime.Flags.SiteMode = env.SiteModeBadDB
return false
}
// runtime.DbVariant = GetSQLVariant(runtime.Flags.DBType, dbComment)
// Get SQL variant as this affects minimum version checking logic.
// MySQL and Percona share same version scheme (e..g 5.7.10).
// MariaDB starts at 10.2.x
runtime.DbVariant = GetSQLVariant(runtime.Flags.DBType, dbComment)
runtime.Log.Info(fmt.Sprintf("Database checks: SQL variant %v", runtime.DbVariant))
runtime.Log.Info(fmt.Sprintf("Database checks: SQL variant %v", runtime.Storage.Type))
runtime.Log.Info("Database checks: SQL version " + version)
verNums, err := GetSQLVersion(version)
@ -72,7 +67,7 @@ func Check(runtime *env.Runtime) bool {
// Check minimum MySQL version as we need JSON column type.
verInts := []int{5, 7, 10} // Minimum MySQL version
if runtime.DbVariant == env.DBVariantMariaDB {
if runtime.Storage.Type == env.StoreTypeMariaDB {
verInts = []int{10, 3, 0} // Minimum MariaDB version
}
@ -146,31 +141,31 @@ func Check(runtime *env.Runtime) bool {
}
// GetSQLVariant uses database value form @@version_comment to deduce MySQL variant.
func GetSQLVariant(dbType, vc string) env.DbVariant {
vc = strings.ToLower(vc)
dbType = strings.ToLower(dbType)
// func GetSQLVariant(dbType, vc string) env.DbVariant {
// vc = strings.ToLower(vc)
// dbType = strings.ToLower(dbType)
// determine type from database
if strings.Contains(vc, "mariadb") {
return env.DBVariantMariaDB
} else if strings.Contains(vc, "percona") {
return env.DBVariantPercona
} else if strings.Contains(vc, "mysql") {
return env.DbVariantMySQL
}
// // determine type from database
// if strings.Contains(vc, "mariadb") {
// return env.DBVariantMariaDB
// } else if strings.Contains(vc, "percona") {
// return env.DBVariantPercona
// } else if strings.Contains(vc, "mysql") {
// return env.DbVariantMySQL
// }
// now determine type from command line switch
if strings.Contains(dbType, "mariadb") {
return env.DBVariantMariaDB
} else if strings.Contains(dbType, "percona") {
return env.DBVariantPercona
} else if strings.Contains(dbType, "mysql") {
return env.DbVariantMySQL
}
// // now determine type from command line switch
// if strings.Contains(dbType, "mariadb") {
// return env.DBVariantMariaDB
// } else if strings.Contains(dbType, "percona") {
// return env.DBVariantPercona
// } else if strings.Contains(dbType, "mysql") {
// return env.DbVariantMySQL
// }
// horrid default could cause app to crash
return env.DbVariantMySQL
}
// // horrid default could cause app to crash
// return env.DbVariantMySQL
// }
// GetSQLVersion returns SQL version as major,minor,patch numerics.
func GetSQLVersion(v string) (ints []int, err error) {