mirror of
https://github.com/uptrace/go-clickhouse.git
synced 2025-06-08 23:26:11 +02:00
chore: improve auto-create database
This commit is contained in:
parent
ad9e630abf
commit
c0e67d2ec4
@ -29,6 +29,7 @@ type Config struct {
|
||||
User string
|
||||
Password string
|
||||
Database string
|
||||
Cluster string
|
||||
|
||||
DialTimeout time.Duration
|
||||
TLSConfig *tls.Config
|
||||
@ -151,6 +152,12 @@ func WithDatabase(database string) Option {
|
||||
}
|
||||
}
|
||||
|
||||
func WithCluster(cluster string) Option {
|
||||
return func(db *DB) {
|
||||
db.conf.Cluster = cluster
|
||||
}
|
||||
}
|
||||
|
||||
// WithDialTimeout configures dial timeout for establishing new connections.
|
||||
// Default is 5 seconds.
|
||||
func WithDialTimeout(timeout time.Duration) Option {
|
||||
|
7
ch/db.go
7
ch/db.go
@ -130,10 +130,15 @@ func (db *DB) autoCreateDatabase() {
|
||||
conf := db.conf.clone()
|
||||
conf.Database = ""
|
||||
|
||||
query := "CREATE DATABASE IF NOT EXISTS ?"
|
||||
if conf.Cluster != "" {
|
||||
query += " ON CLUSTER ?"
|
||||
}
|
||||
|
||||
tmp := newDB(conf)
|
||||
defer tmp.Close()
|
||||
|
||||
if _, err := tmp.Exec("CREATE DATABASE IF NOT EXISTS ?", Ident(db.conf.Database)); err != nil {
|
||||
if _, err := tmp.Exec(query, Ident(db.conf.Database), Ident(db.conf.Cluster)); err != nil {
|
||||
internal.Logger.Printf("create database %q failed: %s", db.conf.Database, err)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user