mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	All configuration reload-able
This commit is contained in:
		@@ -16,30 +16,39 @@ import (
 | 
			
		||||
	"github.com/gogits/gogs/modules/base"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var orm *xorm.Engine
 | 
			
		||||
var (
 | 
			
		||||
	orm *xorm.Engine
 | 
			
		||||
 | 
			
		||||
	dbCfg struct {
 | 
			
		||||
		Type, Host, Name, User, Pwd, Path, SslMode string
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func LoadModelsConfig() {
 | 
			
		||||
	dbCfg.Type = base.Cfg.MustValue("database", "DB_TYPE")
 | 
			
		||||
	dbCfg.Host = base.Cfg.MustValue("database", "HOST")
 | 
			
		||||
	dbCfg.Name = base.Cfg.MustValue("database", "NAME")
 | 
			
		||||
	dbCfg.User = base.Cfg.MustValue("database", "USER")
 | 
			
		||||
	dbCfg.Pwd = base.Cfg.MustValue("database", "PASSWD")
 | 
			
		||||
	dbCfg.Path = base.Cfg.MustValue("database", "PATH", "data/gogs.db")
 | 
			
		||||
	dbCfg.SslMode = base.Cfg.MustValue("database", "SSL_MODE")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func setEngine() {
 | 
			
		||||
	dbType := base.Cfg.MustValue("database", "DB_TYPE")
 | 
			
		||||
	dbHost := base.Cfg.MustValue("database", "HOST")
 | 
			
		||||
	dbName := base.Cfg.MustValue("database", "NAME")
 | 
			
		||||
	dbUser := base.Cfg.MustValue("database", "USER")
 | 
			
		||||
	dbPwd := base.Cfg.MustValue("database", "PASSWD")
 | 
			
		||||
	dbPath := base.Cfg.MustValue("database", "PATH", "data/gogs.db")
 | 
			
		||||
	sslMode := base.Cfg.MustValue("database", "SSL_MODE")
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	switch dbType {
 | 
			
		||||
	switch dbCfg.Type {
 | 
			
		||||
	case "mysql":
 | 
			
		||||
		orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@%s/%s?charset=utf8",
 | 
			
		||||
			dbUser, dbPwd, dbHost, dbName))
 | 
			
		||||
			dbCfg.User, dbCfg.Pwd, dbCfg.Host, dbCfg.Name))
 | 
			
		||||
	case "postgres":
 | 
			
		||||
		orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s",
 | 
			
		||||
			dbUser, dbPwd, dbName, sslMode))
 | 
			
		||||
			dbCfg.User, dbCfg.Pwd, dbCfg.Name, dbCfg.SslMode))
 | 
			
		||||
	case "sqlite3":
 | 
			
		||||
		os.MkdirAll(path.Dir(dbPath), os.ModePerm)
 | 
			
		||||
		orm, err = xorm.NewEngine("sqlite3", dbPath)
 | 
			
		||||
		os.MkdirAll(path.Dir(dbCfg.Path), os.ModePerm)
 | 
			
		||||
		orm, err = xorm.NewEngine("sqlite3", dbCfg.Path)
 | 
			
		||||
	default:
 | 
			
		||||
		fmt.Printf("Unknown database type: %s\n", dbType)
 | 
			
		||||
		fmt.Printf("Unknown database type: %s\n", dbCfg.Type)
 | 
			
		||||
		os.Exit(2)
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -61,7 +70,7 @@ func setEngine() {
 | 
			
		||||
	orm.ShowSQL = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
func NewEngine() {
 | 
			
		||||
	setEngine()
 | 
			
		||||
	if err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Watch),
 | 
			
		||||
		new(Action), new(Access)); err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,9 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	LoadModelsConfig()
 | 
			
		||||
	NewEngine()
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	orm, err = xorm.NewEngine("sqlite3", "./test.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -41,10 +41,12 @@ var (
 | 
			
		||||
	LanguageIgns, Licenses []string
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
func LoadRepoConfig() {
 | 
			
		||||
	LanguageIgns = strings.Split(base.Cfg.MustValue("repository", "LANG_IGNS"), "|")
 | 
			
		||||
	Licenses = strings.Split(base.Cfg.MustValue("repository", "LICENSES"), "|")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewRepoContext() {
 | 
			
		||||
	zip.Verbose = false
 | 
			
		||||
 | 
			
		||||
	// Check if server has basic git setting.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user