Skip to content

Commit d92c168

Browse files
authored
DB: Add environment variable option to skip DB table creationˆ (#2245)
* DB: Add env to skip DB creationˆ * DB: Rename var name & Remove new function * Migration -> Initialization * Remove GetBoolEnvOrDefault * DB: Rearrange dependencies
1 parent bf9a1b0 commit d92c168

File tree

4 files changed

+41
-9
lines changed

4 files changed

+41
-9
lines changed

pkg/db/v1beta1/common/const.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,6 @@ const (
4646
DefaultPostgreSQLDatabase = "katib"
4747
DefaultPostgreSQLHost = "katib-postgres"
4848
DefaultPostgreSQLPort = "5432"
49+
50+
SkipDbInitializationEnvName = "SKIP_DB_INITIALIZATION"
4951
)

pkg/db/v1beta1/mysql/init.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,34 @@ import (
2020
"fmt"
2121

2222
"k8s.io/klog"
23+
24+
"github.com/kubeflow/katib/pkg/db/v1beta1/common"
25+
"github.com/kubeflow/katib/pkg/util/v1beta1/env"
2326
)
2427

2528
func (d *dbConn) DBInit() {
2629
db := d.db
27-
klog.Info("Initializing v1beta1 DB schema")
30+
skipDbInitialization := env.GetEnvOrDefault(common.SkipDbInitializationEnvName, "false")
31+
32+
if skipDbInitialization == "false" {
33+
klog.Info("Initializing v1beta1 DB schema")
2834

29-
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS observation_logs
35+
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS observation_logs
3036
(trial_name VARCHAR(255) NOT NULL,
3137
id INT AUTO_INCREMENT PRIMARY KEY,
3238
time DATETIME(6),
3339
metric_name VARCHAR(255) NOT NULL,
3440
value TEXT NOT NULL)`)
35-
if err != nil {
36-
klog.Fatalf("Error creating observation_logs table: %v", err)
41+
if err != nil {
42+
klog.Fatalf("Error creating observation_logs table: %v", err)
43+
}
44+
} else {
45+
klog.Info("Skipping v1beta1 DB schema initialization.")
46+
47+
_, err := db.Query(`SELECT trial_name, id, time, metric_name, value FROM observation_logs LIMIT 1`)
48+
if err != nil {
49+
klog.Fatalf("Error validating observation_logs table: %v", err)
50+
}
3751
}
3852
}
3953

pkg/db/v1beta1/postgres/init.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,34 @@ import (
2020
"fmt"
2121

2222
"k8s.io/klog"
23+
24+
"github.com/kubeflow/katib/pkg/db/v1beta1/common"
25+
"github.com/kubeflow/katib/pkg/util/v1beta1/env"
2326
)
2427

2528
func (d *dbConn) DBInit() {
2629
db := d.db
27-
klog.Info("Initializing v1beta1 DB schema")
30+
skipDbInitialization := env.GetEnvOrDefault(common.SkipDbInitializationEnvName, "false")
31+
32+
if skipDbInitialization == "false" {
33+
klog.Info("Initializing v1beta1 DB schema")
2834

29-
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS observation_logs
35+
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS observation_logs
3036
(trial_name VARCHAR(255) NOT NULL,
3137
id serial PRIMARY KEY,
3238
time TIMESTAMP(6),
3339
metric_name VARCHAR(255) NOT NULL,
3440
value TEXT NOT NULL)`)
35-
if err != nil {
36-
klog.Fatalf("Error creating observation_logs table: %v", err)
41+
if err != nil {
42+
klog.Fatalf("Error creating observation_logs table: %v", err)
43+
}
44+
} else {
45+
klog.Info("Skipping v1beta1 DB schema initialization.")
46+
47+
_, err := db.Query(`SELECT trial_name, id, time, metric_name, value FROM observation_logs LIMIT 1`)
48+
if err != nil {
49+
klog.Fatalf("Error validating observation_logs table: %v", err)
50+
}
3751
}
3852
}
3953

pkg/util/v1beta1/env/env.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ limitations under the License.
1616

1717
package env
1818

19-
import "os"
19+
import (
20+
"os"
21+
)
2022

2123
func GetEnvOrDefault(key string, fallback string) string {
2224
if value, ok := os.LookupEnv(key); ok {

0 commit comments

Comments
 (0)