Fix: sqlite3 memory error: no such table

pull/21/head
zijiren233 2 years ago
parent 787c5fa61d
commit b5f7a440a6

@ -118,7 +118,9 @@ func InitDatabase(ctx context.Context) error {
if err != nil {
log.Fatalf("failed to get sqlDB: %s", err.Error())
}
initRawDB(sqlDB)
if conf.Conf.Database.Type != conf.DatabaseTypeSqlite3 {
initRawDB(sqlDB)
}
return db.Init(d, conf.Conf.Database.Type)
}
@ -149,4 +151,9 @@ func initRawDB(db *sql.DB) {
log.Fatalf("failed to parse conn_max_lifetime: %s", err.Error())
}
db.SetConnMaxLifetime(d)
d, err = time.ParseDuration(conf.Conf.Database.ConnMaxIdleTime)
if err != nil {
log.Fatalf("failed to parse conn_max_idle_time: %s", err.Error())
}
db.SetConnMaxIdleTime(d)
}

@ -19,9 +19,10 @@ type DatabaseConfig struct {
CustomDSN string `yaml:"custom_dsn" hc:"when not empty, it will ignore other config" env:"DATABASE_CUSTOM_DSN"`
MaxIdleConns int `yaml:"max_idle_conns" lc:"default: 4" hc:"the maximum number of connections in the idle connection pool." env:"DATABASE_MAX_IDLE_CONNS"`
MaxOpenConns int `yaml:"max_open_conns" lc:"default: 64" hc:"the maximum number of open connections to the database." env:"DATABASE_MAX_OPEN_CONNS"`
ConnMaxLifetime string `yaml:"conn_max_lifetime" lc:"default: 1h" hc:"maximum amount of time a connection may be reused." env:"DATABASE_CONN_MAX_LIFETIME"`
MaxIdleConns int `yaml:"max_idle_conns" hc:"sqlite3 does not support setting connection parameters" env:"DATABASE_MAX_IDLE_CONNS"`
MaxOpenConns int `yaml:"max_open_conns" env:"DATABASE_MAX_OPEN_CONNS"`
ConnMaxLifetime string `yaml:"conn_max_lifetime" env:"DATABASE_CONN_MAX_LIFETIME"`
ConnMaxIdleTime string `yaml:"conn_max_idle_time" env:"DATABASE_CONN_MAX_IDLE_TIME"`
}
func DefaultDatabaseConfig() DatabaseConfig {
@ -33,6 +34,7 @@ func DefaultDatabaseConfig() DatabaseConfig {
MaxIdleConns: 4,
MaxOpenConns: 64,
ConnMaxLifetime: "1h",
ConnMaxLifetime: "2h",
ConnMaxIdleTime: "30m",
}
}

Loading…
Cancel
Save