Skip to content

Commit

Permalink
remove the setting, there are enough already
Browse files Browse the repository at this point in the history
  • Loading branch information
noerw committed Jul 30, 2022
1 parent a6b8443 commit 1f744f9
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 18 deletions.
1 change: 0 additions & 1 deletion custom/conf/app.example.ini
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,6 @@ USER = root
;DB_TYPE = sqlite3
;PATH= ; defaults to data/gitea.db
;SQLITE_TIMEOUT = ; Query timeout defaults to: 500
;SQLITE_JOURNAL_MODE = ; defaults to DELETE, can be used to enable WAL mode. https://www.sqlite.org/pragma.html#pragma_journal_mode
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
Expand Down
1 change: 0 additions & 1 deletion docs/content/doc/advanced/config-cheat-sheet.en-us.md
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,6 @@ The following configuration set `Content-Type: application/vnd.android.package-a
- `verify-ca`: Enable TLS with verification of the database server certificate against its root certificate.
- `verify-full`: Enable TLS and verify the database server name matches the given certificate in either the `Common Name` or `Subject Alternative Name` fields.
- `SQLITE_TIMEOUT`: **500**: Query timeout for SQLite3 only.
- `SQLITE_JOURNAL_MODE`: on windows & linux: **WAL**, otherwise **DELETE**: Change journal mode for SQlite3. See [SQlite3 docs](https://www.sqlite.org/pragma.html#pragma_journal_mode) for possible values.
- `ITERATE_BUFFER_SIZE`: **50**: Internal buffer size for iterating.
- `CHARSET`: **utf8mb4**: For MySQL only, either "utf8" or "utf8mb4". NOTICE: for "utf8mb4" you must use MySQL InnoDB > 5.6. Gitea is unable to check this.
- `PATH`: **data/gitea.db**: For SQLite3 only, the database file path.
Expand Down
26 changes: 10 additions & 16 deletions modules/setting/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ var (
LogSQL bool
Charset string
Timeout int // seconds
SQliteJournalMode string
UseSQLite3 bool
UseMySQL bool
UseMSSQL bool
Expand Down Expand Up @@ -90,24 +89,10 @@ func InitDBConfig() {
if Database.UseMySQL && defaultCharset != "utf8mb4" {
log.Error("Deprecated database mysql charset utf8 support, please use utf8mb4 or convert utf8 to utf8mb4.")
}

if Database.UseSQLite3 {
Database.Path = sec.Key("PATH").MustString(filepath.Join(AppDataPath, "gitea.db"))
Database.Timeout = sec.Key("SQLITE_TIMEOUT").MustInt(500)

// WAL mode is preferred for better concurent write performance, but needs special VFS driver features,
// which are guaranteed to be available for unix & windows OSes
var defaultJournalMode string
switch runtime.GOOS {
// probably the BSDs are supported too, but i found no information on this - better safe than sorry.
case "windows", "linux": // "darwin", "freebsd", "openbsd", "netbsd":
defaultJournalMode = "WAL"
default:
defaultJournalMode = "DELETE"
}
Database.SQliteJournalMode = sec.Key("SQLITE_JOURNAL_MODE").MustString(defaultJournalMode)
}

Database.MaxIdleConns = sec.Key("MAX_IDLE_CONNS").MustInt(2)
if Database.UseMySQL {
Database.ConnMaxLifetime = sec.Key("CONN_MAX_LIFETIME").MustDuration(3 * time.Second)
Expand Down Expand Up @@ -153,8 +138,17 @@ func DBConnStr() (string, error) {
if err := os.MkdirAll(path.Dir(Database.Path), os.ModePerm); err != nil {
return "", fmt.Errorf("Failed to create directories: %v", err)
}

// WAL mode is preferred for better concurent write performance, but needs special VFS driver features,
// which are guaranteed to be available for unix & windows OSes: https://www.sqlite.org/wal.html
journalMode := "DELETE"
switch runtime.GOOS {
// probably the BSDs are supported too, but i found no information on this - better safe than sorry.
case "windows", "linux": // "darwin", "freebsd", "openbsd", "netbsd":
journalMode = "WAL"
}
connStr = fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d&_txlock=immediate&_journal_mode=%s",
Database.Path, Database.Timeout, Database.SQliteJournalMode)
Database.Path, Database.Timeout, journalMode)
default:
return "", fmt.Errorf("Unknown database type: %s", Database.Type)
}
Expand Down

0 comments on commit 1f744f9

Please sign in to comment.