MCPcopy Create free account
hub / github.com/gogs/gogs / SetEngine

Function SetEngine

internal/database/models.go:129–182  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

127}
128
129func SetEngine() (*gorm.DB, error) {
130 var err error
131 x, err = getEngine()
132 if err != nil {
133 return nil, errors.Newf("connect to database: %v", err)
134 }
135
136 if conf.UsePostgreSQL {
137 x.SetSchema(conf.Database.Schema)
138 }
139
140 x.SetMapper(core.GonicMapper{})
141
142 var logPath string
143 if conf.HookMode {
144 logPath = filepath.Join(conf.Log.RootPath, "hooks", "xorm.log")
145 } else {
146 logPath = filepath.Join(conf.Log.RootPath, "xorm.log")
147 }
148 sec := conf.File.Section("log.xorm")
149 fileWriter, err := log.NewFileWriter(logPath,
150 log.FileRotationConfig{
151 Rotate: sec.Key("ROTATE").MustBool(true),
152 Daily: sec.Key("ROTATE_DAILY").MustBool(true),
153 MaxSize: sec.Key("MAX_SIZE").MustInt64(100) * 1024 * 1024,
154 MaxDays: sec.Key("MAX_DAYS").MustInt64(3),
155 },
156 )
157 if err != nil {
158 return nil, errors.Newf("create 'xorm.log': %v", err)
159 }
160
161 x.SetMaxOpenConns(conf.Database.MaxOpenConns)
162 x.SetMaxIdleConns(conf.Database.MaxIdleConns)
163 x.SetConnMaxLifetime(time.Second)
164
165 if conf.IsProdMode() {
166 x.SetLogger(xorm.NewSimpleLogger3(fileWriter, xorm.DEFAULT_LOG_PREFIX, xorm.DEFAULT_LOG_FLAG, core.LOG_ERR))
167 } else {
168 x.SetLogger(xorm.NewSimpleLogger(fileWriter))
169 }
170 x.ShowSQL(true)
171
172 var gormLogger logger.Writer
173 if conf.HookMode {
174 gormLogger = &dbutil.Logger{Writer: fileWriter}
175 } else {
176 gormLogger, err = newLogWriter()
177 if err != nil {
178 return nil, errors.Wrap(err, "new log writer")
179 }
180 }
181 return NewConnection(gormLogger)
182}
183
184func NewEngine() error {
185 db, err := SetEngine()

Callers 6

runBackupFunction · 0.92
setupFunction · 0.92
runCreateUserFunction · 0.92
adminDashboardOperationFunction · 0.92
runRestoreFunction · 0.92
NewEngineFunction · 0.85

Calls 4

IsProdModeFunction · 0.92
getEngineFunction · 0.85
newLogWriterFunction · 0.85
NewConnectionFunction · 0.85

Tested by

no test coverage detected