mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-10-21 12:00:02 +00:00
Add options to controll the database connections (open,idle,timeout) (#4212)
This commit is contained in:
@@ -27,14 +27,34 @@ import (
|
||||
|
||||
var flags = append([]cli.Flag{
|
||||
&cli.BoolFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_LOG_XORM"),
|
||||
Name: "log-xorm",
|
||||
Usage: "enable xorm logging",
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_LOG", "WOODPECKER_LOG_XORM"),
|
||||
Name: "db-log",
|
||||
Aliases: []string{"log-xorm"}, // TODO: remove in v4.0.0
|
||||
Usage: "enable logging in database engine (currently xorm)",
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_LOG_XORM_SQL"),
|
||||
Name: "log-xorm-sql",
|
||||
Usage: "enable xorm sql command logging",
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_LOG_SQL", "WOODPECKER_LOG_XORM_SQL"),
|
||||
Name: "db-log-sql",
|
||||
Aliases: []string{"log-xorm-sql"}, // TODO: remove in v4.0.0
|
||||
Usage: "enable logging of sql commands",
|
||||
},
|
||||
&cli.IntFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_MAX_CONNECTIONS"),
|
||||
Name: "db-max-open-connections",
|
||||
Usage: "max connections xorm is allowed create",
|
||||
Value: 100,
|
||||
},
|
||||
&cli.IntFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_IDLE_CONNECTIONS"),
|
||||
Name: "db-max-idle-connections",
|
||||
Usage: "amount of connections xorm will hold open",
|
||||
Value: 2,
|
||||
},
|
||||
&cli.DurationFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_CONNECTION_TIMEOUT"),
|
||||
Name: "db-max-connection-timeout",
|
||||
Usage: "time an active connection is allowed to stay open",
|
||||
Value: 3 * time.Second,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_HOST"),
|
||||
@@ -205,7 +225,8 @@ var flags = append([]cli.Flag{
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Sources: cli.EnvVars("WOODPECKER_DATABASE_DRIVER"),
|
||||
Name: "driver",
|
||||
Name: "db-driver",
|
||||
Aliases: []string{"driver"}, // TODO: remove in v4.0.0
|
||||
Usage: "database driver",
|
||||
Value: "sqlite3",
|
||||
},
|
||||
@@ -213,9 +234,10 @@ var flags = append([]cli.Flag{
|
||||
Sources: cli.NewValueSourceChain(
|
||||
cli.File(os.Getenv("WOODPECKER_DATABASE_DATASOURCE_FILE")),
|
||||
cli.EnvVar("WOODPECKER_DATABASE_DATASOURCE")),
|
||||
Name: "datasource",
|
||||
Usage: "database driver configuration string",
|
||||
Value: datasourceDefaultValue(),
|
||||
Name: "db-datasource",
|
||||
Aliases: []string{"datasource"}, // TODO: remove in v4.0.0
|
||||
Usage: "database driver configuration string",
|
||||
Value: datasourceDefaultValue(),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Sources: cli.NewValueSourceChain(
|
||||
|
@@ -51,11 +51,14 @@ const (
|
||||
)
|
||||
|
||||
func setupStore(ctx context.Context, c *cli.Command) (store.Store, error) {
|
||||
datasource := c.String("datasource")
|
||||
driver := c.String("driver")
|
||||
datasource := c.String("db-datasource")
|
||||
driver := c.String("db-driver")
|
||||
xorm := store.XORM{
|
||||
Log: c.Bool("log-xorm"),
|
||||
ShowSQL: c.Bool("log-xorm-sql"),
|
||||
Log: c.Bool("db-log"),
|
||||
ShowSQL: c.Bool("db-log-sql"),
|
||||
MaxOpenConns: int(c.Int("db-max-open-connections")),
|
||||
MaxIdleConns: int(c.Int("db-max-idle-connections")),
|
||||
ConnMaxLifetime: c.Duration("db-max-connection-timeout"),
|
||||
}
|
||||
|
||||
if driver == "sqlite3" {
|
||||
|
Reference in New Issue
Block a user